【VBA】セルが数値かどうかを判定する方法|IsNumeric関数で数値チェック

Excel VBAで表の値を扱う際、「そのセルに数値が入力されているかどうか」を確認したい場面はよくあります。
たとえば、数値計算を行う前に、数値以外の入力を排除したい場合などです。

この記事では、VBAの IsNumeric 関数を使って、セルの値が数値かどうかを判定する方法をご紹介します。


目次

基本構文:IsNumeric関数でチェック

IsNumeric(値)
指定した値が数値として解釈可能かどうかを判定する関数で、結果は True または False を返します。


セル範囲内の値がすべて数値かどうかを確認するVBAコード

以下は、セル範囲 "C3:E5" に対してすべてのセルが数値であるかどうかをチェックする例です。

Sub CheckIfNumeric()
    Dim checkCell As Range
    For Each checkCell In Range("C3:E5")
        If IsNumeric(checkCell.Value) = False Then
            checkCell.Select
            MsgBox "数値ではない値があります:" & checkCell.Address
            Exit Sub
        End If
    Next
    MsgBox "すべてのセルに数値が入力されています"
End Sub

解説

  • Range("C3:E5"):チェック対象のセル範囲を指定します。
  • IsNumeric(checkCell.Value):セルの値が数値でなければ False を返します。
  • 最初に見つかった非数値セルにフォーカスし、アラートを表示します。
  • 全セルが数値の場合は、完了メッセージが表示されます。

IsNumeric関数の判定例

入力値IsNumericの結果備考
123True数値
“456”True数字の文字列もOK
“abc”False文字列
“”False空白も数値ではない
“12a”False混在

使用シーンの例

  • ユーザー入力の妥当性チェック(数値限定)
  • 数値を前提とした計算処理の前にデータ検証
  • 誤入力の自動検出と通知

まとめ

処理内容コード例
セルが数値かどうか判定IsNumeric(Range("C3").Value)
範囲内すべての数値を確認For Each ループ + IsNumeric
数値でないセルを特定・選択.Select + .Address
完了メッセージを表示MsgBox を使用
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次