VBAをつかって操作するセルの種類を指定することができます。
セルの種類を指定できれば、セルの状況によって処理を選択することができるためマクロでできる可能性がいっきにひろがります。
たとえば、「空白のセル」や「数式が含まれているセル」を選択して色をつけるなどのように、セルの状況によってこまかな設定ができます。
さまざまな種類のセル
指定した条件のセルを取得するために「SpecialCells」をつかいます。
オブジェクト.SpecialCells(Type,[Value])
こちらが引数一覧です。
メソッド | 引数 | 値 | 内容 |
SpecialCells | Type | xlCellTypeBlanks | 空白セル |
xlCellTypeComments | コメントがあるセル | ||
xlCellTypeConstants | 定数があるセル | ||
xlCellTypeFormulas | 数式があるセル | ||
xlCellTypeLastCell | セル範囲内の最後のセル | ||
xlCellTypeAllFormatConditions | 条件付書式が設定されているセル | ||
xlCellTypeSameFormatConditions | おなじ条件付書式が設定されているセル | ||
xlCellTypeAllValidation | 入力規則が設定されているセル | ||
xlCellTypeSameValidation | おなじ入力規則が設定されているセル | ||
xlCellTypeVisible | 可視セル(非表示の行列を含まない) | ||
Value | xlErrors | エラー値(「#DIV/0!」「#N/A」「#NAME?」「#NULL!」「#NUM!」「#REF!」「#VALUE!」) | |
xlLogical | 論理値(「True」「False」) | ||
xlNumbers | 数値 | ||
xlTextValues | 文字 |
「SpecialCells」の使い方
指定できるセルにはおおくの種類がありますが、ここではわたしがよく使うものを具体例をつかっていくつかご紹介したいと思います。
空白行を削除する|xlCellTypeBlanks
こちらのワークシートをつかってご説明をします。
ある販売店の売上一覧です。
この売上一覧のなかから”発送済一覧”をマクロをつかって作成したいと思います。
さっそく「セルの種類」から考えていきましょう。
今回は「空白セル」のある行全体を削除すれば、目的の”発送済一覧”が作れそうです。
まずは、動作させたい内容をまとめます。
【開始】マクロの名前:test1 セル範囲「A2からA6」の空白セルの行を選択して削除する 【終了】
こちらがコードです。
Sub test1() Range("A2:A6").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
実行結果はこちらです。
「セルA列」が空白となっていた行が削除されています。
これで期待どおりの結果を得ることができました。
コメントが含まれている行に着色|xlCellTypeComments
先ほどとおなじワークシートをつかってご説明をします。
今回はこのようなコメントが入っている行に着色したいと思います。
さっそくですがコードはこちらです。
基本的な考え方は、さきほどの例とおなじです。
Sub test2() Range("A2:A6").SpecialCells(xlCellTypeComments) _ .EntireRow.Interior.Color = RGB(0, 150, 100) End Sub
実行結果はこちらです。
このようにコメントが入っている行だけ着色することができました。
セルの種類を確認する方法
セルの「選択オプション」をつかって「SpecialCells」の対象を調べることができます。
方法はつぎのとおりです。
途中まではつぎの2パターンのどちらかで進めます。
エクセルをひらいて「ctrl」と「G」の同時押し
もしくは
- エクセルのタブ「ホーム」を選択する
- 右側の「検索と選択」を選択する
- 「ジャンプ」をクリックする
つづけて「セル選択」を選びます。
こちらの画面をつかってあらかじめコードで記述する内容を探しておきましょう。
まとめ
「SpecialCells」をつかったセルの取得についてご説明しました。
今回ご紹介した内容以外にもさまざまな場面で使うことができますので、いろんな用途におうじてつかってみてください。