アクセスログを眺めていて
「エクセルVBA CurrentRegionで選択した範囲の空白行をセレクト」
という検索キーワードに気付きました。
アクティブセル領域で空白の行を選択するには、Excel VBAでどのようなコードを書けばいいのかを探していた方による検索です。
アクティブセル領域の空白行を選択するサンプルマクロ
以下のSubプロシージャが参考になるでしょうか。
Dim target As Range
Dim rng As Range
For Each rng In ActiveCell.CurrentRegion.Rows
If rng.Cells.Count = WorksheetFunction.CountBlank(rng) Then
If target Is Nothing Then
Set target = rng
Else
Set target = Union(target, rng)
End If
End If
Next rng
End Sub
サンプルマクロの解説
Range.Rowsプロパティで行を表すRangeオブジェクトを取得することで、アクティブセル領域の行単位でFor Each~Nextループを回し、
For Each rng In ActiveCell.CurrentRegion.Rows
各行が空白かどうかを判定します。
「空白行」と表現されているのが、具体的にどのようなセルなのかが判断に迷うところですけれど、ここではCOUNTBLANK関数を使って空白セルの数を取得して、その個数と行に含まれるセルの個数が一致したら、アクティブセル領域内の行全体が空白であると判定しています。
If rng.Cells.Count = WorksheetFunction.CountBlank(rng) Then
空白行だったときには、Application.Unionメソッドを使って、
If target Is Nothing Then
Set target = rng
Else
Set target = Union(target, rng)
空白行を表すRangeオブジェクトを、オブジェクト変数targetにどんどん追加しています。
For Each~Nextループを抜けたら、Range.Selectメソッドで選択です。
target.Select
Home » Excel VBA Rangeオブジェクト » CurrentRegionプロパティ » アクティブセル領域の空白行を選択するExcelマクロ