だれかのなにかに役立てるウェブ制作者YoTaの趣味ブログ

Excel VBAのif制御文で「対象のデータが文字列かどうか」条件を判定する方法

Excel VBAで、条件文で対象とするデータが文字列かどうか判定する際は、VarType関数を使用します。

ソースコード

Sub test()

Dim i As string

  If VarType(i) = 8 Then
      Msgbox "対象のデータは文字列型です"
    else
      Msgbox "対象のデータは文字列型ではありません"
  End If

End Sub

上記では、vba内で文字列型の変数iを宣言していますが、もちろんワークシートのセルを「Activesheet.value」のように代入して、ダイレクトに条件判定することも可能です。

VarType関数で判定したデータ型は下記のルールに従って返却値を吐き出します。

定数 内容
vbEmpty 0 Empty 値 (未初期化)
vbNull 1 Null 値 (無効な値)
vbInteger 2 整数型
vbLong 3 長整数型 (Long)
vbSingle 4 単精度浮動小数点数型 (Single)
vbDouble 5 倍精度浮動小数点数型 (Double)
vbCurrency 6 通貨型 (Currency)
vbDate 7 日付型 (Date)
vbString 8 文字列型
vbObject 9 オートメーション オブジェクト
vbError 10 エラー型
vbBoolean 11 ブール型 (Boolean)
vbVariant 12 バリアント型 (Variant) (バリアント型配列にのみ使用)
vbDataObject 13 非オートメーション オブジェクト
vbByte 17 バイト型
vbArray 8192 配列 (Array)

文字列型に限らず、「Excel VBAでデータの型を調べたい時はVarType関数を使う」と覚えておけばOKです!

ページ上部に戻る