教えて!ExcelVBA!

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

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

f:id:m_kbou:20200420122610p:plain

VarType関数は使用しているデータの型を調べて結果を数値で返します。使い方について説明します。

 

 

構文

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

VarType([値])

[説明]:

[値]にはデータ型を調べる数値や文字を記述します。内容を纏めると、「[値]で入力したデータの型を調べ、結果を数値で返して下さい。」との意味になります。返ってきた値に対する型内容は、以下一覧の通りとなります。

f:id:m_kbou:20201020144817p:plain

[記述例]:

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