セルのSpecialCellsメソッド

ある特定の条件に該当するセルをまとめて抽出したい場合は SpecialCells メソッドを使用します。引数Typeに抽出条件に関する定数を設定して使用するのが、主な使用方法になります。

スポンサーリンク

SpecialCells メソッドの使用方法

構文
object.SpecialCells( Type [, Value] )

※objectはセルまたはレンジオブジェクトを表す変数

引数名 省略 定数/データ型 説明
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には数式と条件付き書式が設定されています。

sample6_38の実行前
sample6_38の実行前

サンプルマクロを実行すると、xlCellTypeLastCell は最後のセルを抽出するので、テーブル右下のセルが黄色に塗りつぶされました。

sample6_38でSpecialCellsにxlCellTypeLastCellを指定した場合の実行結果
sample6_38でSpecialCellsにxlCellTypeLastCellを指定した場合の実行結果

条件付き書式のセルを抽出

sample6_38の7行目 SpecialCells の引数に xlCellTypeAllFormatConditions を設定すると、条件付き書式のセルを抽出します。テスデータではF4~F13セルが該当するため、それらのセルが黄色に塗りつぶされました。

sample6_38でSpecialCellsにxlCellTypeAllFormatConditionsを指定した場合の実行結果
sample6_38でSpecialCellsにxlCellTypeAllFormatConditionsを指定した場合の実行結果

入力規則のセルを抽出

sample6_38の7行目 SpecialCells の引数に xlCellTypeAllValidation を設定すると、入力規則のセルを抽出します。テスデータでは該当セルが存在しないため、『該当セルなし』と表示されました。

sample6_38でSpecialCellsにxlCellTypeAllValidationを指定した場合の実行結果
sample6_38でSpecialCellsにxlCellTypeAllValidationを指定した場合の実行結果

ブランクセルを抽出

sample6_38の7行目 SpecialCells の引数に xlCellTypeBlanks を設定すると、値や書式などが何も設定されていないブランクセルを抽出します。テスデータでは1,2行目が該当するため、それらのセルが黄色に塗りつぶされました。

sample6_38でSpecialCellsにxlCellTypeBlanksを指定した場合の実行結果
sample6_38でSpecialCellsにxlCellTypeBlanksを指定した場合の実行結果

コメントセルを抽出

sample6_38の7行目 SpecialCells の引数に xlCellTypeComments を設定すると、コメントが設定されているセルを抽出します。テスデータではE3、F3セルが該当するため、それらのセルが黄色に塗りつぶされました。

sample6_38でSpecialCellsにxlCellTypeCommentsを指定した場合の実行結果
sample6_38でSpecialCellsにxlCellTypeCommentsを指定した場合の実行結果

定数セルを抽出

sample6_38の7行目 SpecialCells の引数に xlCellTypeConstants を設定すると、定数が設定されているセルを抽出します。テスデータでは見出し、店舗番号、売上金額など多数のセルが該当し、それらのセルが黄色に塗りつぶされました。

sample6_38でSpecialCellsにxlCellTypeConstantsを指定した場合の実行結果
sample6_38でSpecialCellsにxlCellTypeConstantsを指定した場合の実行結果

数式セルを抽出

sample6_38の7行目 SpecialCells の引数に xlCellTypeFormulas を設定すると、数式が設定されているセルを抽出します。テスデータではE4~F13セルが該当するため、それらのセルが黄色に塗りつぶされました。

sample6_38でSpecialCellsにxlCellTypeFormulasを指定した場合の実行結果
sample6_38でSpecialCellsにxlCellTypeFormulasを指定した場合の実行結果
タイトルとURLをコピーしました