この記事では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でよく使う関数一覧&基本の使い方


