VBAでマクロを作ろうとすると,『セルに値が入っているか』つまり,『空のセルか否か』を判定したいときが度々あります.
空白セルの判定
空白セルの判定方法はいくつかありますが,以下のように書くのが一番簡単です.
If Cells(1, i) = "" Then ''ここに空白の場合の操作を書く
『””』が空白を意味します.
例題
以下のプログラムは,A1~E1の5つのセルのうち,空白セルの数を数え,F1セルに書きこみます.
Sub 空白セルを取得選択する() Cells(1, 6).Value = 0 For i = 1 To 5 If Cells(1, i) = "" Then Cells(1, 6).Value = Cells(1, 6).Value + 1 End If Next End Sub
実行結果
田中 | 伊藤 | 事務 | 2 |
空白は2つなので,F1セルに2が書き込まれました.
同様に,2次元の表に対しても,以下のように空白の数を数えることができます.
8行5列の表の空白セルの数をカウントし,F9セルに書きこむプログラム
Sub 空白セルを取得選択する() Cells(9, 6).Value = 0 For j = 1 To 5 For i = 1 To 8 If Cells(i, j) = "" Then Cells(9, 6).Value = Cells(9, 6).Value + 1 End If Next Next End Sub
実行結果
10 | 20 | 3 | |||
10 | 10 | 10 | 10 | ||
10 | 10 | 10 | 10 | ||
33 | 2 | 4 | |||
10 | 10 | 10 | 10 | 10 | |
10 | 10 | 10 | 10 | 10 | |
10 | 10 | 5 | 10 | 3 | |
10 | 10 | 10 | 10 | 10 | |
6 |
以下は,空白があったら,そこを「空白」という文字で埋めるプログラムです.
Sub 空白セルに空白を入れる() For j = 1 To 5 For i = 1 To 8 If Cells(i, j) = "" Then Cells(i, j) = "空白" End If Next Next End Sub
実行結果
10 | 空白 | 20 | 空白 | 3 |
10 | 空白 | 10 | 10 | 10 |
10 | 10 | 10 | 空白 | 10 |
空白 | 33 | 空白 | 2 | 4 |
10 | 10 | 10 | 10 | 10 |
10 | 10 | 10 | 10 | 10 |
10 | 10 | 5 | 10 | 3 |
10 | 10 | 10 | 10 | 10 |
このように,空白セルを検索することができれば,やれることが増えます.
コメント