「列での空白セルを取得する VBA」
という検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがありました。
特定の列から、空白セルを取得するVBAのコードを探していた方による検索でしょう。
A列から空白セルを取得選択するサンプルマクロ
以下のSubプロシージャを実行すると、A列の空白セルが取得・選択されます。
On Error GoTo ErrHandl
Dim rng As Range
Set rng = _
Columns("A").SpecialCells(xlCellTypeBlanks)
rng.Select
ErrHandl:
MsgBox "空白セルが見つかりません。"
Err.Clear
End Sub
「ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)」というコードで、アクティブシートの使われているセル範囲の中から空白セルを取得できることをご紹介しています。
「.SpecialCells(xlCellTypeBlanks)」の前、空白セルを探す対象であるセル範囲を表すRangeオブジェクトを取得する式が変わっただけです。
「ActiveSheet.UsedRange」から、「Columns("A")」という拙著『いちばんやさしいExcel VBAの教本』のLesson 63「行全体・列全体を表すRangeオブジェクトについて学習しましょう」でもお伝えしている、Columnsプロパティを使った列全体を表すRangeオブジェクトを取得する式になっている点だけが異なります。
ジャンプ→選択オプションで選択するのと考え方は似ている
上記のコードは、Excelで[ジャンプ]ダイアログを表示してから[選択オプション]ダイアログを更に表示し、空白セルを選択する操作と、考え方は似ています。
A列の空白セルを、[ジャンプ]ダイアログから[選択オプション]ダイアログを表示して選択する場合、A列を選択しておいてから操作を開始します。
VBAのコードの場合、「.SpecialCells(xlCellTypeBlanks)」の前で、空白セルを探す対象とするセル範囲を指定します。
アクティブセルを含む列から空白セルを取得選択するサンプルマクロ
参考までにもうひとつ。
以下のSubプロシージャで、アクティブセルを含む列全体から、空白セルを取得・選択できます。
On Error GoTo ErrHandl
Dim rng As Range
Set rng = _
ActiveCell.EntireColumn.SpecialCells(xlCellTypeBlanks)
rng.Select
ErrHandl:
MsgBox "空白セルが見つかりません。"
Err.Clear
End Sub
先ほどのSubプロシージャで「Columns("A")」となっていたRangeオブジェクトを取得する式が、RangeオブジェクトのEntireColumnプロパティを使った「ActiveCell.EntireColumn」になっている点が異なります。
最終更新日時:2019-03-09 06:24
- Newer:ISNA関数とISERROR関数の違い
- Older:VBAでスライドタイトルの左上位置を取得する
Home » Excel VBA Rangeオブジェクト » SpecialCellsメソッド » VBAで特定の列から空白セルを取得する