MENU

【初心者向け】IsNumeric関数で「数値かどうか」を判定する方法

A子さん

「セルの中身が数字かどうかチェックしたいんだけど…」
「“123”と“abc”を見分ける方法ってないの?」

先輩

ご安心ください。VBAの IsNumeric 関数を使えば、
“数字かどうか”を一発で判定できます。

結論:数値かどうかは IsNumeric(調べたい値) でOK!

目次

IsNumeric関数とは?

IsNumeric 関数は、**指定した値が「数値として認識されるかどうか」**を判断する関数です。

  • 数値なら → True
  • 数値以外 → False
Debug.Print IsNumeric(123)      ' → True
Debug.Print IsNumeric("abc")    ' → False
Debug.Print IsNumeric("123")    ' → True(※文字列でも数字ならOK)

基本的な使い方

Dim val As String
val = "100"

If IsNumeric(val) Then
    MsgBox "これは数値です"
Else
    MsgBox "これは数値ではありません"
End If
先輩

"100" のような 文字列型の数字も「数値」と判定されます。

実務でよくある「セルの数値チェック」

If Not IsNumeric(Cells(2, 1).Value) Then
    MsgBox "A2セルに数値を入力してください"
End If
先輩

フォーム入力や帳票処理で、「数値が入力されているか」を確認できます。

注意!こんなパターンに気をつけて

入力値IsNumericの結果備考
123True数値
"123"True文字列だが中身が数字
"123a"False数字+文字はNG
""(空欄)False空白は数値とみなされない
12.3True小数もOK
"¥1,000"False記号・カンマ付きはNG(事前に整形を)

ワンポイント対策:カンマや記号を除去するには?

Dim raw As String
raw = "¥1,000"

cleaned = Replace(raw, "¥", "")
cleaned = Replace(cleaned, ",", "")

If IsNumeric(cleaned) Then
    MsgBox "これは数値として処理可能です"
End If

応用:複数セルをまとめてチェック

Dim i As Long
For i = 2 To 10
    If Not IsNumeric(Cells(i, 1).Value) Then
        MsgBox "A" & i & " は数値ではありません"
    End If
Next i
先輩

データ入力の検証や、Excel帳票のチェックに便利です。

まとめ:IsNumericのポイント

ポイント内容
数値かどうかを調べたいときに使うTrue(数値) / False(数値でない)
文字列でも数字ならTrueになる"100""3.14" もOK
記号付きは事前に整形が必要Replaceでカンマや記号を除く
空欄や文字混じりのデータに注意"123a""" は False
複数セルに使いたい時はFor文と組み合わせ入力エリア全体を一括チェックできる
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次