忍者ブログ
バイオインフォマティックス技術者試験、情報処理試験など、IT系の試験を基礎から勉強します。また、Javaなどプログラミングを勉強します。

【VBAスタンダード対策】For Each による「空白セル」の判定とカウント

データ入力チェックや未入力セルのカウントなどで頻出するのが、For Each ... Next を使ってセル範囲内の空白セルを1つずつ判定する処理です。空白の判定構文と集計のフローをマスターしましょう。

1. 問題:空白セルの判定とカウント処理

【 問題 】 下記の図のように、Excelシートの A1:B3 のセルに値(一部は空欄)が入力されています。この状態で以下の CountBlankCells プロシージャを実行した際、メッセージボックス(MsgBox)に表示される数値として正しいものはどれでしょうか?

AB
1 100 (空白)
2 (空白) 200
3 300 (空白)
Sub CountBlankCells()
    Dim rng As Range
    Dim c As Range
    Dim blankCount As Long

    Set rng = Range("A1:B3")
    blankCount = 0

    For Each c In rng
        If c.Value = "" Then
            blankCount = blankCount + 1
        End If
    Next c

    MsgBox blankCount
End Sub

① 2
② 3
③ 6
④ 構文エラー(コンパイルエラー)が発生する

2. 正解:実行結果

正解: ② 3

3. 解説:空白セルの判定構造とトレース

Range("A1:B3") の全6セルを For Each で1セルずつ巡回し、値が空文字("")であるかを判定していきます。

【各セルの処理ステップ(左から右、上から下への順)】
初期値: blankCount = 0

1. セル A1(値: 100) : 100 = "" は False → 加算しない
2. セル B1(値: 空白): "" = "" は True → blankCount = 0 + 1 = 1
3. セル A2(値: 空白): "" = "" は True → blankCount = 1 + 1 = 2
4. セル B2(値: 200) : 200 = "" は False → 加算しない
5. セル A3(値: 300) : 300 = "" は False → 加算しない
6. セル B3(値: 空白): "" = "" は True → blankCount = 2 + 1 = 3

★ 合計3つの空白セルが検出され、メッセージボックスには 3 が表示されます。

ここが試験に出る!: スタンダード試験では、空白セルの判定として If c.Value = "" Then のほかに、If IsEmpty(c.Value) ThenIf Len(c.Value) = 0 Then などの構文もよく出題されます。いずれの書き方でも「値が入っていないセル」を判定する仕組みをしっかり整理しておきましょう。


4. まとめ

「セル範囲をFor Eachで巡回し、c.Value = "" でカウントする」。この基本パターンを押さえておけば、実務での未入力チェックや、入力漏れのあるセルへの警告メッセージ表示などを簡単に作成できるようになります。


PR
AB
1 100 (空白)
2 (空白) 200
3 300 (空白)
Sub CountBlankCells()
    Dim rng As Range
    Dim c As Range
    Dim blankCount As Long

    Set rng = Range("A1:B3")
    blankCount = 0

    For Each c In rng
        If c.Value = "" Then
            blankCount = blankCount + 1
        End If
    Next c

    MsgBox blankCount
End Sub

① 2
② 3
③ 6
④ 構文エラー(コンパイルエラー)が発生する

2. 正解:実行結果

正解: ② 3

3. 解説:空白セルの判定構造とトレース

Range("A1:B3") の全6セルを For Each で1セルずつ巡回し、値が空文字("")であるかを判定していきます。

【各セルの処理ステップ(左から右、上から下への順)】
初期値: blankCount = 0

1. セル A1(値: 100) : 100 = "" は False → 加算しない
2. セル B1(値: 空白): "" = "" は True → blankCount = 0 + 1 = 1
3. セル A2(値: 空白): "" = "" は True → blankCount = 1 + 1 = 2
4. セル B2(値: 200) : 200 = "" は False → 加算しない
5. セル A3(値: 300) : 300 = "" は False → 加算しない
6. セル B3(値: 空白): "" = "" は True → blankCount = 2 + 1 = 3

★ 合計3つの空白セルが検出され、メッセージボックスには 3 が表示されます。

ここが試験に出る!: スタンダード試験では、空白セルの判定として If c.Value = "" Then のほかに、If IsEmpty(c.Value) ThenIf Len(c.Value) = 0 Then などの構文もよく出題されます。いずれの書き方でも「値が入っていないセル」を判定する仕組みをしっかり整理しておきましょう。


4. まとめ

「セル範囲をFor Eachで巡回し、c.Value = "" でカウントする」。この基本パターンを押さえておけば、実務での未入力チェックや、入力漏れのあるセルへの警告メッセージ表示などを簡単に作成できるようになります。


PR
" dc:identifier="http://rikeineo.blog.shinobi.jp/Entry/2170/" /> -->