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)とか書いてみてもムダです。

今読んだ記事をシェアする

vba-thumb

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

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

このブログサイトが参考になった人は、いいねボタン! 更新情報も受け取れます!

arrow
デル株式会社
  • Pocket
  • このエントリーをはてなブックマークに追加

キヨタツ

キヨタツ

WEBを中心に、色々な制作をする個人事業主です。過去、エンジニア&webディレクターで会社勤めをしていました。エンジニアで勤めていた頃は、MATLAB/simulink/VBA/C/C++など扱っていました。生産管理、MECE、オブジェクト指向など、エンジニアの知識はweb業界に入っても、かなり役立ちます。性格は、自虐好きです。