教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】VarType関数でデータ型を調べて結果を数値で返す方法を教えて!

f:id:m_kbou:20200420122610p:plain

 

 

構文

記述方法は以下の通りとなります。

VarType([変数])

[説明]:

指定した変数のデータ型を調べて数値で戻り値を返します。

[変数] 任意の変数を記述します。

戻り値となるデータ型は以下一覧の通りです。

内容
0 Empty値
1 Null値
2 整数型
3 長整数型
4 単精度浮動小数点数型
5 倍精度浮動小数点数型
6 通貨型
7 日付型
8 文字列型
9 オブジェクト
10 エラー値
11 ブール型
12 バリアント型
13 非OLEオートメーションオブジェクト
14 10進数型
17 バイト型
8192 配列

[記述例]:

VarType(10)
VarType(3.14)
VarType(#10/23/2019#)
VarType(”テスト”)

 

使い方

使い方について幾つかの型を例にあげて説明していきます。

整数型の場合

データ型が整数型の場合について説明します。

[プログラミング例]:

Sub サンプル()

  MsgBox VarType(10)

End Sub

内容は、「数値:10のデータ型を数値で返し、結果をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210427231149p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427231203p:plain

②結果は以下の様に表示されます。指定した「10」は整数型であるため、MsgBoxで戻り値の「2」が表示されます。

f:id:m_kbou:20210427231213p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

データ型が整数型の場合の説明は以上です。

 

長整数型の場合

データ型が長整数型の場合について説明します。

[プログラミング例]:

Sub サンプル()

  MsgBox VarType(100000)

End Sub

内容は、「数値:100000のデータ型を数値で返し、結果をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210427231310p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427231324p:plain

②結果は以下の様に表示されます。指定した「100000」は長整数型であるため、MsgBoxで戻り値の「3」が表示されます。

f:id:m_kbou:20210427231336p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

データ型が長整数型の場合の説明は以上です。

 

倍精度浮動小数点数型の場合

データ型が倍精度浮動小数点数型の場合について説明します。

[プログラミング例]:

Sub サンプル()

  MsgBox VarType(3.14)

End Sub

内容は、「数値:3.14のデータ型を数値で返し、結果をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210427231431p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427231444p:plain

②結果は以下の様に表示されます。指定した「3.14」は倍精度浮動小数点数型であるため、MsgBoxで戻り値の「5」が表示されます。 

f:id:m_kbou:20210427231456p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

データ型が倍精度浮動小数点数型の場合の説明は以上です。

 

日付型の場合

データ型が日付型の場合について説明します。

[プログラミング例]:

Sub サンプル()

  MsgBox VarType(#10/23/2019#)

End Sub

内容は、「日付:2019/10/23のデータ型を数値で返し、結果をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210427231548p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427231603p:plain

②結果は以下の様に表示されます。指定した「#10/23/2019#」は日付型であるため、MsgBoxで戻り値の「7」が表示されます。 

f:id:m_kbou:20210427231613p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

データ型が日付型の場合の説明は以上です。

 

文字列型の場合

データ型が文字列型の場合について説明します。

[プログラミング例]:

Sub サンプル()

  MsgBox VarType("テスト")

End Sub

内容は、「文字:”テスト”のデータ型を数値で返し、結果をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210427231717p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210427231730p:plain

②結果は以下の様に表示されます。指定した「テスト」は文字列型であるため、MsgBoxで戻り値の「8」が表示されます。

f:id:m_kbou:20210427231742p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

データ型が文字列型の場合の説明は以上です。

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

今回はVarType関数について説明しました。上記の事例では、値に直接数値や文字を入力したため、戻り値が比較的容易に推測できたと思います。しかし、実際のプログラミングでは、この値の箇所に変数を指定する事で戻り値を調べるケースが多くなると思います。是非実践で活用してみて下さい。