ある特定の条件に該当するセルをまとめて抽出したい場合は SpecialCells メソッドを使用します。引数Typeに抽出条件に関する定数を設定して使用するのが、主な使用方法になります。
SpecialCells メソッドの使用方法
引数名 | 省略 | 定数/データ型 | 説明 |
---|---|---|---|
Type | × | xlCellTypeAllFormatConditions | 表示形式が設定されているセル |
xlCellTypeAllValidation | 条件の設定が含まれているセル | ||
xlCellTypeBlanks | 空白セル | ||
xlCellTypeComments | コメントが含まれているセル | ||
xlCellTypeConstants | 定数が含まれているセル | ||
xlCellTypeFormulas | 数式が含まれているセル | ||
xlCellTypeLastCell | 使われたセル範囲内の最後のセル | ||
xlCellTypeSameFormatConditions | 同じ表示形式が設定されているセル | ||
xlCellTypeSameValidation | 同じ条件の設定が含まれているセル | ||
xlCellTypeVisible | すべての可視セル | ||
Value | ○ | Variant型 | 引数Typeに xlCellTypeConstants または xlCellTypeFormulas を設定した場合に、特定の種類の定数や数式を含むセルだけを取得できます。 省略すると、すべての定数および数式が対象になります。 |
サンプルマクロ
Sub sample6_38()
On Error Resume Next ' SpecialCells でエラー停止するのを回避
Dim target As Range
'SpecialCellsで取得したセルの参照をワーク領域へ保存
'※xlCellTypeLastCellを必要な処理に応じて変更する
Set target = Cells.SpecialCells(xlCellTypeLastCell)
'該当するセルがない場合はエラーとなるので、
'エラーの場合はメッセージを出力して処理を終了します。
If Err.Number > 0 Then
MsgBox "該当セルなし", vbExclamation
Err.Clear
End
End If
'該当セルを黄色に塗りつぶします。
target.Interior.Color = vbYellow
End Sub
On Errorステートメント Setステートメント Endステートメント
以下のテーブルがマクロ実行前のテストデータです。
テーブルの補足として、セルE4~E13には数式、セルF4~F13には数式と条件付き書式が設定されています。
サンプルマクロを実行すると、xlCellTypeLastCell は最後のセルを抽出するので、テーブル右下のセルが黄色に塗りつぶされました。
条件付き書式のセルを抽出
sample6_38の7行目 SpecialCells の引数に xlCellTypeAllFormatConditions を設定すると、条件付き書式のセルを抽出します。テスデータではF4~F13セルが該当するため、それらのセルが黄色に塗りつぶされました。
入力規則のセルを抽出
sample6_38の7行目 SpecialCells の引数に xlCellTypeAllValidation を設定すると、入力規則のセルを抽出します。テスデータでは該当セルが存在しないため、『該当セルなし』と表示されました。
ブランクセルを抽出
sample6_38の7行目 SpecialCells の引数に xlCellTypeBlanks を設定すると、値や書式などが何も設定されていないブランクセルを抽出します。テスデータでは1,2行目が該当するため、それらのセルが黄色に塗りつぶされました。
コメントセルを抽出
sample6_38の7行目 SpecialCells の引数に xlCellTypeComments を設定すると、コメントが設定されているセルを抽出します。テスデータではE3、F3セルが該当するため、それらのセルが黄色に塗りつぶされました。
定数セルを抽出
sample6_38の7行目 SpecialCells の引数に xlCellTypeConstants を設定すると、定数が設定されているセルを抽出します。テスデータでは見出し、店舗番号、売上金額など多数のセルが該当し、それらのセルが黄色に塗りつぶされました。
数式セルを抽出
sample6_38の7行目 SpecialCells の引数に xlCellTypeFormulas を設定すると、数式が設定されているセルを抽出します。テスデータではE4~F13セルが該当するため、それらのセルが黄色に塗りつぶされました。