-
∨目次
- IsNumeric 関数
- 解説
- 使用例
VBA IsNumeric 関数:数値に変換できるか判定する
はじめに
Excel VBA マクロの IsNumeric 関数から数値に変換できるか判定する方法を紹介します。
IsNumeric 関数は、指定した値が数値かどうかを判定します。
文字列の "123" や数値の 100 など、数値に変換できる値なら True を返します。
文字列を「CInt 関数」などで変換できるか判定したいときに使用します。
文字列を数値に変換するには「文字列を変換する」をご覧ください。
-
目次
- IsNumeric 関数
- 解説
- 使用例
IsNumeric 関数
IsNumeric(値)
値を数値型 (Integer など) に変換できるときは True を返します。それ以外のときは False を返します。
引数「値」 | 判定したい値を指定します。 |
戻り値の型 | ブール型 (Boolean) |
解説
引数「値」に「CInt 関数」などで数値に変換できる値を指定すると True を返します。変換できないときは False を返します。
引数「値」に日付型 (Date) を指定すると False を返します。ただし、「CInt 関数」などは日付型を数値に変換できます。
引数「値」に Boolean 型を指定すると、True は 1 に、False は 0 に変換できるため True を返します。
True を返すときだけ「CInt 関数」などで変換すると、エラーの発生を防げます。
「Val 関数」なら、エラーが発生することなく変換できます。
使用例
数値に変換できるか判定する。
Dim b As Boolean
b = IsNumeric("123")
Debug.Print(b) ' True
b = IsNumeric("123")
Debug.Print(b) ' True
b = IsNumeric("1.5")
Debug.Print(b) ' True
b = IsNumeric("\100") ' 円マーク
Debug.Print(b) ' True
b = IsNumeric("1,000")
Debug.Print(b) ' True
b = IsNumeric(True)
Debug.Print(b) ' True
b = IsNumeric(Now)
Debug.Print(b) ' False、CInt 関数などで変換できる
b = IsNumeric("Tips")
Debug.Print(b) ' False
b = IsNumeric("100円")
Debug.Print(b) ' False
変換できるか判定
「CInt 関数」を使用して、変換できるときだけ変換します。
Dim s As String
s = "123あいう"
Dim v As Variant
If IsNumeric(s) = True Then ' 変換できるときだけ数値にする
v = CInt(s)
Else
v = 0
End If
Val 関数
「Val 関数」は変換できないときに 0 を返すため、判定する必要がありません。
Dim v As Variant
v = Val("123")
Debug.Print(v) ' 123
v = Val("1.5")
Debug.Print(v) ' 1.5
v = Val("あいう")
Debug.Print(v) ' 0
スポンサーリンク