【VBA】空白セルだけを抽出・操作する方法|SpecialCellsの活用で効率的に処理

Excelで大量のデータを扱っていると、「空白セルだけを抽出して操作したい」という場面は非常に多くあります。
たとえば、空白セルに色を付けたい、確認のために選択したい、メッセージを表示したいなどです。

本記事では、VBAのSpecialCellsを活用して、空白セルだけを対象に処理を行う方法をご紹介いたします。


目次

コード例:空白セルだけを選択してアドレスを表示する

Dim blankCells As Range

On Error Resume Next
Set blankCells = ActiveSheet.UsedRange.SpecialCells(Type:=xlCellTypeBlanks)
On Error GoTo 0

If blankCells Is Nothing Then
    MsgBox "空白セルはありません"
Else
    blankCells.Select
    MsgBox "空白セルの範囲:" & blankCells.Address
End If

コードの解説

1. UsedRange.SpecialCells(Type:=xlCellTypeBlanks)

  • UsedRange:実際に使用されているセル範囲のみに限定
  • SpecialCells(Type:=xlCellTypeBlanks):空白セルのみを抽出

これにより、「使用されている範囲内の空白セルだけ」を対象にすることができます。

2. エラー処理(空白がない場合)

  • 空白セルが1つもない場合、SpecialCells はエラーになります。
  • そのため、On Error Resume Next で一時的にエラーを無視し、後で If blankCells Is Nothing で判定します。

3. 空白セルの選択と確認

  • .Select によって空白セルを選択状態にします。
  • .Address で空白セル範囲のアドレス(例:$B$3,$C$5)を取得し、MsgBox で表示します。

応用例:空白セルに文字列を一括入力する

空白セルを取得できたら、下記のように一括で値を代入することも可能です。

blankCells.Value = "未入力"

このようにして、未入力のセルを見落れなく可視化することができます。


まとめ

処理内容使用コード説明
空白セルを取得UsedRange.SpecialCells(xlCellTypeBlanks)使用範囲内のみ対象
空白セルの有無を判定If blankCells Is Nothingエラー時に対応
空白セルを選択blankCells.Select対象範囲の可視化
空白セルに入力blankCells.Value = "未入力"一括入力も可能

SpecialCells を使えば、空白セルだけを効率的に操作できるため、膨大なデータに対するチェックや一括処理に非常に有効です。
業務マクロや確認ツールを作成する際にも、ぜひ活用してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次