Home » ExcelVBA Rangeオブジェクト » SpecialCellsメソッド » VBAで空白セルを探す-SpecialCells(xlCellTypeBlanks)

VBAで空白セルを探す-SpecialCells(xlCellTypeBlanks)

動作検証バージョン:Windows版Excel(バージョン1811 ビルド11029.20108)

空白セルを検索・選択する-SpecialCells(xlCellTypeBlanks)

「エクセル マクロ 空白セルの取得」
「if vba 範囲内の空白セルを探す」
「excel vbaで空白セルを探すにはどうすればよいですか?」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがあります。

Excel VBAで空白セルを探すには、どのようなコードを書けばいいのか調べていた方による検索です。

[スポンサードリンク]

空白セルを検索・選択するサンプルマクロ

空白セルとデータの入力されているセルが混在しているシートがアクティブな状態で、以下のExcelマクロを実行すると、空白のセルだけを取得・選択できます。

Sub 空白セルを取得選択する()
 Dim rng As Range
 Set rng = _
   ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)
 rng.Select
End Sub

For Each~Nextなどのループ処理を考える方も多そうですけれど、その必要はありません。

Range.SpecialCells(xlCellTypeBlanks)で空白セルを取得できる

Excelでは、[選択オプション]ダイアログで「空白セル」オプションを指定すれば、空白セルを選択できます。

空白セルを検索・選択する-SpecialCells(xlCellTypeBlanks)

この機能をVBAから利用すれば、ループを回さなくても空白セルを見つけられます。

それが、Rangeオブジェクトに用意されているSpecialCellsメソッドに、

空白セルを検索・選択する-SpecialCells(xlCellTypeBlanks)

XlCellType列挙に定義されている定数xlCellTypeBlanksを引数として指定した、

空白セルを検索・選択する-SpecialCells(xlCellTypeBlanks)

上記のコードです。

取得を行っているのは、

Set rng = _
  ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)

の部分で、取得したRangeオブジェクトに用意されているSelectメソッドで、

rng.Select

選択を行っています。

空白セルの検索・選択で実行時エラーを回避する

上記のSubプロシージャは、空白セルが存在しないときなどに、実行時エラーが発生します。

実行時エラーを回避する場合、以下のようなSubプロシージャです。

Sub 空白セルを取得選択する_エラー回避()
On Error GoTo ErrHandl

 Dim rng As Range
 Set rng = _
   ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)
 rng.Select

Exit Sub
ErrHandl:
 MsgBox "空白セルが見つかりません。"
 Err.Clear
End Sub

空白セルをどの範囲から探すのかは「.SpecialCells」の前で指定

上述のSubプロシージャではアクティブシート上の使われているセル範囲を、WindowオブジェクトのUsedRangeプロパティを使って指定しています。

Set rng = _
  ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)

「.SpecialCells」の前Rangeオブジェクトを取得する式を変更すれば、どの範囲から空白セルを探すのか指定できます。

例えば、以下のようなコードにすれば、A1:G7セルの中の空白セルだけを取得できます。

Set rng = _
  Range("A1:G7").SpecialCells(xlCellTypeBlanks)

最終更新日時:2024-03-06 06:19

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » SpecialCellsメソッド » VBAで空白セルを探す-SpecialCells(xlCellTypeBlanks)

「SpecialCellsメソッド」の記事一覧

検索


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

.