第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)
第141回.行・列の表示・非表示・列幅・行高
新着記事NEW ・・・新着記事一覧を見る
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.ひらがな⇔カタカナの変換|エクセル基本操作
5.繰り返し処理(For Next)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.Findメソッド(Find,FindNext,FindPrevious)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。