指定範囲内の空白セルにだけ特定の文字を入力する
データの整理をしているときに、空白のセルに「0」を入力したりとか「-」を入れたりとか、穴埋めすることってありますよね(^o^)
今回は、そんなときに便利なSpecialCellsメソッドを紹介させてもらいます!
SpecialCellsメソッド
Type・・・セルの表示形式を表す定数
Value・・・バリアント型の値(省略可)
SpecialCellsメソッドは、空白のセルを扱うだけでなく可視セルだけを取得するなど色々な使い方が出来ます。
引数のTypeでどのようにデータを取得するかを指定します。
設定できる定数は次のようなものがあります。
Typeに指定する定数 | 説明 |
---|---|
xlCellTypeAllFormtConditions | 表示形式が設定されているセル |
xlCellTypeAllValidation | 条件の設定が含まれているセル |
xlCellTypeBlanks | 空白のセル |
xlCellTypeComments | コメントが含まれているセル |
xlCellTypeConstants | 定数が含まれているセル |
xlCellTypeFormulas | 数式が含まれているセル |
xlCellTypeLastCell | 使われたセル範囲内の最後のセル |
xlCellTypeSameFormatConditions | 同じ表示形式が設定されているセル |
xlCellTypeSameValidation | 同じ条件の設定が含まれているセル |
xlCellTypeSameVisible | すべての可視セル |
※Valueについては、引数Typeに xlCellTypeConstants または xlCellTypeFormulas を設定した場合に、特定の種類の定数や数式を含むセルだけを取得できます。 省略すると、すべての定数および数式が対象になります。
サンプル
例えば、次の図のような表があった場合に、SpecialCellsメソッドを使って空白のセルに、”未回答”と入力することをやってみましょう!
今回は、空白のセルを対象に操作しますので、引数のTypeには” xlCellTypeBlanks ”を指定します。
コードは次のようになります。
Sub sample()
'セル範囲の取得
Dim rng As Range
Set rng = Range("A2:B7")
'セル範囲の中の空白セルに対して、”未回答”と入力
rng.SpecialCells(xlCellTypeBlanks) = "未回答"
End Sub
簡単ですね。
操作したい対象のRangeオブジェクトを変数に入れて、SpecialCellsメソッドで空白のセルを対象にし、そこに”未回答”を代入しています。
動画で見てみましょう!
すべての空白セルを一気に操作することが出来ました(^o^)
サクッとプログラム組みたい時には便利に使えるメソッドなので覚えておいて損はないですよ!
コメント
xlCellTypeSameVisible なんて定数はありませんよ。
すみません、僕の勉強不足だったら申し訳ないのですが、
SpecialCellsメソッドにおけるセルの種類を指定するための定数で無いでしょうか?
ActiveSheet.Cells.SpecialCells(xlCellTypeSameFormatConditions).Select
こんな感じで使えませんか??