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

VBA IsNumeric 関数

はじめに

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

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

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

構文

IsNumeric(値)

名前 説明
引数「値」数値型に変換できるか判定したい値を指定します。
戻り値ブール型 (Boolean)

解説

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

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

True は 1 に、False は 0 に変換できるため True を返します。

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

Val 関数」を使えばエラーが発生することなく適切な型に自動で変換してくれます。

使用例


Dim b As Boolean

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

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

b = IsNumeric(Now)
Debug.Print(b) ' False

b = IsNumeric("123Tips")
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("あいう")
Debug.Print (v) ' 0

v = Val("1")
Debug.Print (v) ' 1

v = Val("10.5")
Debug.Print (v) ' 10.5

Dim i As Integer
If IsNumeric("あいう") Then
     i = CInt(i)
End If

関連ページ