第135回.ジャンプの選択オプション(SpecialCells)
数式の入っているセル、定数の入っているセル、条件付き書式の設定されているセル・・・
これらをシート全体やセル範囲の中から一括で取得する方法がマクロVBAにはあります。
マクロVBAでは、RangeオブジェクトのSpecialCellsメソッドがこの機能に該当します。
ジャンプの選択オプションとは
この順に操作します。
シート全体を対象にする場合は、セルを1つだけ選択しておきます。
もちろんシート全体を選択しておいても良いです。
セル範囲(複数セル)を選択しておくと、その選択範囲に限定されます。
※ただし一部の選択オプションでは常に全セルが対象となります。


この画面の中の、
・定数
・数式
・空白セル
・最後のセル
・可視セル
・条件付き書式
・データの入力規則
選択オプションのその他
アクティブ セル領域のCurrentRegionとオブジェクト以外はVBAではあまり使いません。
VBAというより手動でもあまり使わないと思います。
選択オプション | 対応するVBA |
アクティブ セル領域 | CurrentRegion |
アクティブ セルの配列 | CurrentArray |
オブジェクト | DrawingObjects |
アクティブ行との相違 | RowDifferences |
アクティブ列との相違 | ColumnDifferences |
参照元 | 1レベル:DirectPrecedents すべてのレベル:Precedents |
参照先 | 1レベル:Dependents すべてのレベル:DirectDependents |
必要な時にはマクロ自動記録で確認しつつ使えばよいでしょう。
RangeオブジェクトのSpecialCellsメソッド
名前 | 必須/オプション | データ型 | 説明 |
Type | 必須 | XlCellType | 取得するセルの種類を指定します。 |
Value | 省略可能 | バリアント型 (Variant) | 引数TypeがXlcelltypeconstantsまたはxlcelltypeexpressionの場合、 この引数にXlSpecialCellsValue列挙を使用して、結果に含めるセルの種類を決定します。 複数の値を加算して指定すると、複数の種類の定数や数式を指定できます。 この引数を省略すると、すべての定数および数式が対象になります。 |
XlCellType列挙
名前 | 説明 |
xlcelltypecomments | コメント |
xlcelltypeconstants | 定数、Valueオプションが指定できます。 |
xlcelltypeformulas | 数式、Valueオプションが指定できます。 |
xlcelltypeblanks | 空白セル |
xlcelltypelastcell | 最後のセル |
xlcelltypevisible | 可視セル |
xlcelltypeallformatconditions | 条件付き書式 - すべて |
xlcelltypesameformatcondition | 条件付き書式 - 同じ入力規則 |
xlcelltypeallvalidation | データの入力規則 - すべて |
xlcelltypesamevalidation | データの入力規則 - 同じ入力規則 |
画面と対応させて覚えましょう。


XlSpecialCellsValue列挙
名前 | 値 | 説明 |
xlNumbers | 1 | 数値 |
xlTextValues | 2 | 文字 |
xlLogical | 4 | 論理値 |
xlErrors | 16 | エラー値 |
画面と対応させて覚えましょう。

数値と文字の場合は以下のように指定します。
xlNumbers + xlTextValues
SpecialCells使用時の注意点
したがって、必ずOn Errorとともに使用するようにしてください。
SpecialCellsの使用例
エラー値となっている数式を消去
On Error Resume Next
Cells.SpecialCells(xlCellTypeFormulas, XlSpecialCellsValue.xlErrors).ClearContents
最後のセルを選択
Cells.SpecialCells(xlCellTypeLastCell).Select
この場合は必ず存在するのでエラーにはなりません。
数値定数と文字定数を選択
On Error Resume Next
Cells.SpecialCells(xlCellTypeConstants, xlNumbers + xlTextValues).Select
日付、時刻は数値とみなされます。
A1セルのセル領域の可視セルの定数を消去
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants).ClearContents
CurrentRegionもSpecialCellsの戻り値はRangeオブジェクトなので、続けてRangeオブジェクトのメソッドやプロパティを記述することができます。
同じテーマ「マクロVBA入門」の記事
第98回.Findメソッド(Find,FindNext,FindPrevious)
第99回.Replaceメソッド(置換)
第132回.その他のExcel機能(グループ化、重複の削除、オートフィル等)
第135回.ジャンプの選択オプション(SpecialCells)
第141回.行・列の表示・非表示・列幅・行高
第105回.Callステートメント
第106回.Functionプロシージャー
第107回.プロシージャーの引数
第108回.変数の適用範囲(スコープ,Private,Public)
第100回.InputBoxメソッド(インプットボックス)
第101回.Midステートメント
新着記事NEW ・・・新着記事一覧を見る
新旧マスタの差異比較|Power Query(M言語)入門(2023-02-28)
有効な最新単価の取得|Power Query(M言語)入門(2023-02-26)
有効な最新単価の取得|Power Query(M言語)入門(2023-02-21)
グルーブ内の最小・最大|Power Query(M言語)入門(2023-02-17)
2つのテーブルのマージ|Power Query(M言語)入門(2023-02-15)
「売上」が数値の行のみ取り込む|Power Query(M言語)入門(2023-02-13)
A列のヘッダー名を変更する|Power Query(M言語)入門(2023-02-11)
CSVのA列が日付の行だけを取り込む|Power Query(M言語)入門(2023-02-10)
列数不定のCSVの取り込み|Power Query(M言語)入門(2023-02-09)
別ブックの最終シートの取り込み|Power Query(M言語)入門(2023-02-08)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.マクロって何?VBAって何?|VBA入門
7.並べ替え(Sort)|VBA入門
8.Excelショートカットキー一覧|Excelリファレンス
9.エクセルVBAでのシート指定方法|VBA技術解説
10.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。