サイトについて      連絡先   検索

VBA IsNumeric 関数

はじめに

Excel VBA マクロの IsNumeric 関数を紹介します。

IsNumeric 関数は、指定した値を数値型 (Integer など) に変換できるかを判定します。

文字列を「CInt 関数」などで変換できるか判定したいときに使用します。

  • 目次
    • 構文
    • 解説
    • 使用例

構文

IsNumeric()
を数値型 (Integer など) に変換できるときは True を返します。それ以外のときは False を返します。

引数「値」判定したい値を指定します。
戻り値の型ブール型 (Boolean)

解説

Integer や Double などの数値型に変換できる値ならTrueを返します。できないときはFalseを返します。

引数「値」に Boolean 型を指定すると、True は 1 に、False は 0 に変換できるためTrueを返します。

引数「値」に日付型を指定するとFalseを返します。しかし日付型は「CInt 関数」などで数値に変換できます。

CInt 関数」などは変換できないときにエラーが発生します。結果がTrueの時だけ変換すると、エラーの発生を防げます。

Val 関数」を使えばエラーが発生することなく変換できます。

使用例


Dim b As Boolean

b = IsNumeric("123")
Debug.Print(b) ' True
  
b = IsNumeric("123")
Debug.Print(b) ' True

b = IsNumeric("123.567")
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

b = IsNumeric("100円")
Debug.Print(b) ' False
  
b = IsNumeric("Tips")
Debug.Print(b) ' False

変換できるときだけ変換する。


Dim v As Variant
Dim s As String
s = "Tips"

If IsNumeric(s) = True Then ' 変換できるときだけ実行する
    v = CInt(s)
    v = CLng(s)
    v = CSng(s)
    v = CDbl(s)
End If

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
  • 目次
    • 構文
    • 解説
    • 使用例