Home » ExcelVBA Rangeオブジェクト » CurrentRegionプロパティ » アクティブセル領域の空白行を選択するExcelマクロ

アクティブセル領域の空白行を選択するExcelマクロ

対象:Excel2010, Excel2013, Windows版Excel2016

アクセスログを眺めていて
「エクセルVBA CurrentRegionで選択した範囲の空白行をセレクト」
という検索キーワードに気付きました。

アクティブセル領域で空白の行を選択するには、Excel VBAでどのようなコードを書けばいいのかを探していた方による検索です。

[スポンサードリンク]

アクティブセル領域の空白行を選択するサンプルマクロ

以下のSubプロシージャが参考になるでしょうか。

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

 target.Select
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 » ExcelVBA Rangeオブジェクト » CurrentRegionプロパティ » アクティブセル領域の空白行を選択するExcelマクロ

「CurrentRegionプロパティ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.