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

エンジニア

※本記事は作成日より一年以上が経過しています。最新の情報ではないので、ご注意ください。

読了の目安時間: 143

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)

※引用元
https://msdn.microsoft.com/ja-jp/library/cc392346.aspx

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

最後に一言

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

本記事を気に入って頂けたら、facebookの「いいね!」を是非!

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


本記事のシェアはこちらから!

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

PROFILE

yoshi

follow us in feedly

本ブログ・WebMakeBlog KIYOTATSUを運営しているYoshiと申します。PVは月間10万程度です。普段はWEB制作をやっています。過去、エンジニアの頃は、MATLAB/simulink/VBA/C/C++など扱っていました。生産管理、MECE、オブジェクト指向など、当時に得た知識はweb業界に入っても、かなり役立っています。