Excel VBAを使用して、A列にある空白セルが何行目にあるかを探し、その行番号を取得する方法について解説します。
以下がそのVBAコードです。
Sub 空白セルの行番号を取得する()
' エラーハンドリングを設定
On Error GoTo ErrHandl
' Rangeオブジェクトを宣言
Dim blankCell As Range
' A列の空白セルをループで処理
For Each blankCell In Columns("A").SpecialCells(xlCellTypeBlanks)
' 空白セルの行番号をデバッグウィンドウに表示
Debug.Print blankCell.Row
Next
Exit Sub ' 正常終了
ErrHandl:
' エラー情報をクリア
Err.Clear
End Sub
コードを詳しく解説
空白セルが何行目にあるのか探して取得するコードの詳細は以下の通りです。
On Error GoTo ErrHandl 〜 Exit Sub
- エラーハンドリング(例外処理)を設定しています。
- このステートメントは、実行時エラーが発生した時に制御を指定の行ラベルに移動させるものです。エラーが発生した場合、
ErrHandl
ラベルへジャンプします。
Dim 空白セル As Range
- セルの範囲を指定する
Range
型で「空白セル」という変数名を宣言します。
- セルの範囲を指定する
For Each 空白セル In Columns("A").SpecialCells(xlCellTypeBlanks) 〜 Next
For Each
は、反復処理するための ループです。空白セル
はループ内で各セルに対する一時的な変数です。Columns("A")
でA列を指定します。SpecialCells(xlCellTypeBlanks)
は空白セル(空白または空白文字であるセル)を取得しますNext
は、ループの終了を示すキーワードです。この行に到達すると、次の空白セルに移動し、繰り返し処理が続きます。
Debug.Print 空白セル.Row
- 空白セルの行番号をデバッグウィンドウに表示します。
Err.Clear
- エラー情報をクリアします。
- クリアしないと、エラー情報はそのまま残っています。次のエラーが発生したことを判断できるように、エラー処理の後でクリアするようにします。
- Err.Clearを実行すると、Errオブジェクトがクリアされエラー情報は消去されます。
On Error GoTo
のエラー処理が必要な理由は、A列に空白セルがないとき、「Columns("A").SpecialCells(xlCellTypeBlanks)
」で、「'1004': 該当するセルが見つかりません。」という実行時エラーが発生するためです。
このVBAコードを使用することで、A列にある空白セルの行番号を取得することができます。