アフィリエイト広告を利用しています

空白セルや数式セルの参照

ある条件に一致するセルだけを参照して操作する方法に、Range オブジェクトの SpecialCells メソッドを利用する方法があります。

SpecialCells メソッドの引数にセルの種類を指定して、空白セルや数式セルを参照することができます。

空白セルの参照

次のコードを実行するとデータが入力できます。(書式は設定してください。)

■ コード内を「Wクリック」で選択できます。

Sub データ5370_1()
<pre><code>Range("A1") = "売上表"
Range("A3") = "日付"
Range("B3") = "分類"
Range("C3") = "品名"
Range("D3") = "単価"
Range("E3") = "個数"
Range("F3") = "合計"

Range("A4") = "2021/10/1"
Range("B4") = "C1"
Range("C4") = "封筒"
Range("D4") = 5000
Range("E4") = ""
Range("F4") = "=D4 * E4"

Range("A5") = "2021/10/2"
Range("B5") = "C2"
Range("C5") = "メモ帳"
Range("D5") = 3500
Range("E5") = 12
Range("F5") = "=D5 * E5"

Range("A6") = "2021/10/3"
Range("B6") = "S1"
Range("C6") = "名刺セット"
Range("D6") = 4500
Range("E6") = 10
Range("F6") = "=D6 * E6"

Range("A7") = "2021/10/4"
Range("B7") = "D1"
Range("C7") = "ネームペン"
Range("D7") = 2200
Range("E7") = 12
Range("F7") = "=D7 * E7"

Range("A8") = ""
Range("B8") = "D2"
Range("C8") = "ネームペンセット"
Range("D8") = 3200
Range("E8") = ""
Range("F8") = "=D8 * E8"

Range("A9") = "2021/10/5"
Range("B9") = "S1"
Range("C9") = "名刺セット"
Range("D9") = 4500
Range("E9") = 8
Range("F9") = "=D9 * E9"</code></pre>
End Sub
目次

空白セルの参照

CurrentRegionプロパティで、表を選択します。

■ コード内を「Wクリック」で選択できます。

Sub サンプル5370_2()
<pre><code>Range("A3").CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Interior.Color = RGB(0, 0, 255)</code></pre>
End Sub

• Range(“A3”).CurrentRegion.Select
 ’セルA3を基準に表を選択します。
• Selection.SpecialCells(xlCellTypeBlanks).Select
 ’空白のセルを選択します。
• Selection.Interior.Color = RGB(0, 0, 255)
 ’空白セルの背景を「青」にします。

■ マクロの実行結果

SpecialCellsの引数

Type説明
xlCellTypeBlanks空白のセル
xlCellTypeCommentsコメントを含むセル
xlCellTypeConstants定数のセル
xlCellTypeFormulas数式のセル
xlCellTypeVisible可視セル
Value説明
xlErrorsエラー値
xlLogiccal論理値
xlNumbers数値
xlTextValues文字

セルの文字や数値を削除する

■ コード内を「Wクリック」で選択できます。

Sub サンプル5370_3()
<pre><code>Range("A4:F9").SpecialCells(xlCellTypeConstants, _
xlNumbers + xlTextValues).ClearContents
Range("A4:F9").Interior.Pattern = xlNone</code></pre>
End Sub

•  Range(“A4:F9”).SpecialCells(xlCellTypeConstants, _
xlNumbers + xlTextValues).ClearContents
 ’セルA4~セルF9を選択して、文字と数値を削除します。
• Range(“A4:F9”).Interior.Pattern = xlNone
 ’セルA4~セルF9を選択して、背景色を元に戻します。

■ マクロの実行前

■ マクロの実行結果
F列に入っている「数式」は削除されません。

データの無い行を削除する

次の表でA列を指定して、データの無い行を削除します。

■ コード内を「Wクリック」で選択できます。

Sub サンプル5370_4()
<pre><code>Range("A4:A9").SpecialCells(xlCellTypeBlanks) _
.EntireRow.Delete</code></pre>
End Sub

•  Range(“A4:A9”).SpecialCells(xlCellTypeBlanks) _
.EntireRow.Delete
 ’セルA4~セルA9を指定します。
EntireRow.Deleteで行の位置を指定して削除します。

■ マクロの実行結果
A列の8行目が削除されました。

次の表でE列を指定して、データの無い行を削除します。

■ コード内を「Wクリック」で選択できます。

Sub サンプル5370_5()
<pre><code>Range("E4:E9").SpecialCells(xlCellTypeBlanks) _
.EntireRow.Delete</code></pre>
End Sub

■ マクロの実行結果
E列の4行目と8行目が削除されました。

以上で「空白セルや数式セルの参照」の説明を終わります。

目次