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

IT/web

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です!

最後に一言

VarType(Blood)とか書いてみてもムダです。

この記事をSNSでシェアする?

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


  • 2
    このエントリーをはてなブックマークに追加
  • Pocket

PROFILE

yoshi

KIYOTATSU(キヨタツ)を運営しているウェブ制作者のYoshiです。得意な分野はディレクションとコーディングです。デザインはシンプルなものだけ可能です。他、色々と随時習得中です。