【Excel VBA入門】特定セルの操作方法|空白・コメント付セルなどの指定方法 

操作編

VBAをつかって操作するセルの種類を指定することができます

セルの種類を指定できれば、セルの状況によって処理を選択することができるためマクロでできる可能性がいっきにひろがります。

たとえば、「空白のセル」や「数式が含まれているセル」を選択して色をつけるなどのように、セルの状況によってこまかな設定ができます。

スポンサーリンク

さまざまな種類のセル

指定した条件のセルを取得するために「SpecialCells」をつかいます

オブジェクト.SpecialCells(Type,[Value])

こちらが引数一覧です。

メソッド引数内容
SpecialCellsTypexlCellTypeBlanks空白セル
xlCellTypeCommentsコメントがあるセル
xlCellTypeConstants定数があるセル
xlCellTypeFormulas数式があるセル
xlCellTypeLastCellセル範囲内の最後のセル
xlCellTypeAllFormatConditions条件付書式が設定されているセル
xlCellTypeSameFormatConditionsおなじ条件付書式が設定されているセル
xlCellTypeAllValidation入力規則が設定されているセル
xlCellTypeSameValidationおなじ入力規則が設定されているセル
xlCellTypeVisible可視セル(非表示の行列を含まない)
ValuexlErrorsエラー値(「#DIV/0!」「#N/A」「#NAME?」「#NULL!」「#NUM!」「#REF!」「#VALUE!」)
xlLogical論理値(「True」「False」)
xlNumbers数値
xlTextValues文字

「SpecialCells」の使い方

指定できるセルにはおおくの種類がありますが、ここではわたしがよく使うものを具体例をつかっていくつかご紹介したいと思います。

空白行を削除する|xlCellTypeBlanks

こちらのワークシートをつかってご説明をします。

ある販売店の売上一覧です。
この売上一覧のなかから”発送済一覧”をマクロをつかって作成したいと思います。

発送済の商品には「セルA列」に”済”と入力がされている

 

さっそく「セルの種類」から考えていきましょう。
今回は「空白セル」のある行全体を削除すれば、目的の”発送済一覧”が作れそうです。

まずは、動作させたい内容をまとめます。

【開始】マクロの名前:test1
    セル範囲「A2からA6」の空白セルの行を選択して削除する
【終了】

こちらがコードです。

Sub test1()
    Range("A2:A6").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

実行結果はこちらです。

「セルA列」が空白となっていた行が削除されています。
これで期待どおりの結果を得ることができました。

コメントが含まれている行に着色|xlCellTypeComments

先ほどとおなじワークシートをつかってご説明をします。
今回はこのようなコメントが入っている行に着色したいと思います。

2行目と4行目にコメントが入力されている。

さっそくですがコードはこちらです。
基本的な考え方は、さきほどの例とおなじです。

Sub test2()
    Range("A2:A6").SpecialCells(xlCellTypeComments) _
    .EntireRow.Interior.Color = RGB(0, 150, 100)
End Sub

実行結果はこちらです。

このようにコメントが入っている行だけ着色することができました。

セルの種類を確認する方法

セルの「選択オプション」をつかって「SpecialCells」の対象を調べることができます。

方法はつぎのとおりです。
途中まではつぎの2パターンのどちらかで進めます。

エクセルをひらいて「ctrl」と「G」の同時押し

もしくは

  1. エクセルのタブ「ホーム」を選択する
  2. 右側の「検索と選択」を選択する
  3. 「ジャンプ」をクリックする

つづけて「セル選択」を選びます。

こちらの画面をつかってあらかじめコードで記述する内容を探しておきましょう。

まとめ

SpecialCells」をつかったセルの取得についてご説明しました。

今回ご紹介した内容以外にもさまざまな場面で使うことができますので、いろんな用途におうじてつかってみてください。

タイトルとURLをコピーしました