この記事ではIsNumeric関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。
IsNumeric関数の使い方と注意点
IsNumeric関数は、指定した値が数値として解釈可能かどうかを判定する関数です。
入力値が数値かどうかをチェックしたいときに便利です。
構文
IsNumeric(式)
- 式 : 判定したい値(文字列、数値など)
-
戻り値 : 数値として解釈できる場合は
True
、そうでなければFalse
使用例
数値かどうか判定する
Sub Sample()
Dim val1 As Variant
val1 = "1234"
Debug.Print val1 & " は数値? " & IsNumeric(val1)
Dim val2 As Variant
val2 = "12.34"
Debug.Print val2 & " は数値? " & IsNumeric(val2)
Dim val3 As Variant
val3 = "abc"
Debug.Print val3 & " は数値? " & IsNumeric(val3)
Dim val4 As Variant
val4 = "1234a"
Debug.Print val4 & " は数値? " & IsNumeric(val4)
End Sub
▶ 出力結果
1234 は数値? True
12.34 は数値? True
abc は数値? False
1234a は数値? False
InputBoxで数値の入力をチェックする
Sub Sample()
Dim inputVal As String
inputVal = InputBox("数値を入力してください")
If IsNumeric(inputVal) Then
MsgBox "入力値は数値です: " & inputVal
Else
MsgBox "数値を入力してください"
End If
End Sub
⚠️注意
空文字列や空白は数値ではない
Sub Sample()
Debug.Print "空文字は数値? " & IsNumeric("")
Debug.Print "空白文字は数値? " & IsNumeric(" ")
End Sub
▶ 出力結果
空文字は数値? False
空白文字は数値? False
数値として解釈される文字列の例
文字列 | 結果 | 解説 |
---|---|---|
"123" | True | 半角数字 |
"123" | True | 全角数字 |
"123.45" | True | 小数点あり |
"+123" | True | 符号付き数値 |
"-123" | True | 符号付き数値 |
"1.23e4" | True | 指数表記 |
"123." | True | 末尾に小数点 |
".5" | True | 先頭に小数点 |
"1,000" | True | カンマあり |
"abc" | False | 半角英字 |
"ABC" | False | 全角英字 |
"abc123" | False | 半角英字+数値 |
"123abc" | False | 数値+半角英字 |
"あいう" | False | ひらがな |
"カキク" | False | 全角カタカナ |
"アイウ" | False | 半角カタカナ |
"漢字" | False | 漢字 |
"三" | False | 漢数字 |
"!" | False | 記号 |
"@" | False | 記号 |
"#" | False | 記号 |
"" | False | 記号 |
"+123" | True | 全角記号+全角数字 |
"" | False | 空文字 |
" " | False | 空白 |
" 123 " | True | 数値の前後に空白 |
"123.45" | True | 全角小数点 |
"+123"
や"1,000"
のような文字列は、環境(ロケールやExcelのバージョン)によって判定が異なる場合があります。
その他のVBA関数
【Excel VBA】VBAでよく使う関数一覧&基本の使い方