教えて!ExcelVBA!

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

【ExcelVBA 関数】IsNumeric関数を使用した数値として扱えるかどうかを調べる方法を教えて!

f:id:m_kbou:20200420122351p:plain

 

 

構文

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

IsNumeric([変数])

[説明]:

指定した変数が数値として認識できるか否かを判定します。数値として扱える場合には「True」を、扱えない場合には「False」を戻り値として返します。

f:id:m_kbou:20220104192447p:plain

[記述例]:

Sub サンプル()
  Dim 値 As Variant
  値 = 123
  MsgBox IsNumeric(値)
End Sub

 

使い方

使い方について具体的に説明します。

値が数値として認識できる場合

値が数値として認識できる場合について説明します。 

[プログラミング例①]:

Sub サンプル()

  Dim 値 As Variant

  値 = 123

  MsgBox IsNumeric(値)

End Sub

「変数:値に123をセットします。その値が数値として認識できるのか?できないのか?を判断し、数値として認識できる場合は「True」を、認識できない場合は「False」をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20211216155812p:plain

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

[実行例①]:

①<実行>ボタンには上記のプログラミング例①のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210423121406p:plain

②結果は以下の様に表示されます。変数:値は数値として認識できるため、MsgBoxで「True」が表示されます。

f:id:m_kbou:20210423121419p:plain

[サンプル①]:

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

drive.google.com

[プログラミング例②]:

Sub サンプル()

  Dim 値 As Variant

  値 = 123

  If (IsNumeric(値) = True) Then
    MsgBox "数値です。"
  Else
    MsgBox "数値ではありません。"
 End If

End Sub

「変数:値に123をセットします。その値が数値として扱えるか否かを判断し、扱える場合には”数値です。”をMsgBoxで表示し、扱えない場合には”数値ではありません。”を表示て下さい。」との意味になります。

f:id:m_kbou:20211216160434p:plain

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

[実行例②]:

①<実行>ボタンには上記のプログラミング例②のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210423121558p:plain

②結果は以下の様に表示されます。変数:値は数値として認識できるため、MsgBoxで「数値です。」が表示されます。

f:id:m_kbou:20210423121612p:plain

[サンプル②]:

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

drive.google.com

値が数値として認識できる場合についての説明は以上です。

 

値が数値として認識できない場合

値が数値として認識できない場合について説明します。 

[プログラミング例①]:

Sub サンプル()

  Dim 値 As Variant

  値 = "テスト"

  MsgBox IsNumeric(値)

End Sub

「変数:値に”テスト”をセットします。その値が数値として認識できるのか?できないのか?を判断し、数値として認識できる場合は「True」を、認識できない場合は「False」をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20211216161200p:plain

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

[実行例①]:

①<実行>ボタンには上記のプログラミング例①のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210423121742p:plain

②結果は以下の様に表示されます。変数:値は文字列であり数値として認識できないため、MsgBoxで「False」が表示されます。

f:id:m_kbou:20210423121757p:plain

[サンプル①]:

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

drive.google.com

[プログラミング例②]:

Sub サンプル()

  Dim 値 As Variant

  値 = "テスト"

  If (IsNumeric(値) = True) Then
    MsgBox "数値です。"
  Else
    MsgBox "数値ではありません。"
  End If

End Sub

「変数:値に”テスト”をセットします。その値が数値として扱えるか否かを判断し、扱える場合には”数値です。”をMsgBoxで表示し、扱えない場合には”数値ではありません。”を表示て下さい。」との意味になります。

f:id:m_kbou:20211216161952p:plain

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

[実行例②]:

①<実行>ボタンには上記のプログラミング例②のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210423121902p:plain

②結果は以下の様に表示されます。変数:値は文字列で数値として認識できないため、MsgBoxで「数値ではありません。」が表示されます。

f:id:m_kbou:20210423121914p:plain

[サンプル②]:

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

drive.google.com

値が数値として認識できない場合についての説明は以上です。

 

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

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

www.osiete-excelvba.work

 

おわりに

今回はIsNumeric関数の使い方について説明しました。類似の内容としてIsDate関数を使用した日付や時刻として扱えるかどうかを調べる方法IsArray関数を使用した配列かどうかを調べる方法があります。こちらも参考にして下さい。