【EXCEL VBA】指定範囲内の空白セルにだけ特定の文字を入力するSpecialCellsメソッド

スポンサーリンク

指定範囲内の空白セルにだけ特定の文字を入力する

データの整理をしているときに、空白のセルに「0」を入力したりとか「-」を入れたりとか、穴埋めすることってありますよね(^o^)

今回は、そんなときに便利なSpecialCellsメソッドを紹介させてもらいます!

スポンサーリンク

SpecialCellsメソッド

構文

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

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^)

サクッとプログラム組みたい時には便利に使えるメソッドなので覚えておいて損はないですよ!

コメント

  1. 匿名 より:

    xlCellTypeSameVisible なんて定数はありませんよ。

    • hirachin より:

      すみません、僕の勉強不足だったら申し訳ないのですが、
      SpecialCellsメソッドにおけるセルの種類を指定するための定数で無いでしょうか?
      ActiveSheet.Cells.SpecialCells(xlCellTypeSameFormatConditions).Select
      こんな感じで使えませんか??

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