ExcelVBA(マクロ)でデータが数値かどうかを調べる方法/IsNumeric関数の使い方

appetite IT

VBA上でデータが数値かどうかを調べる場合、IsNumeric関数を用います。IsNumeric関数は引数が数値の場合はTrue(真)、そうでない場合はFalse(偽)を返します。日付は数値でないものとして扱われます。

Advertisements

IsNumeric関数の使い方

引数が数値かを判定
IsNumeric(引数)
isnumeric1
A1~A3のデータを数値かどうかマクロで確認します。それぞれ半角数字、漢数字、日付です。
isnumeric2
ざっとコードを書きました。For文は指定した命令を繰り返すためのもので、ここでは3回リピートを指定しています。
isnumeric3
If文でRange(“A” & i).Value(A+変数iの値。最初がA1、次がA2……となる)を、IsNumericの引数として指定し、TrueとFalseで処理を分けます。
isnumeric4
Valueを使い、Trueであれば数値ですよと表示する、というシンプルなコードです。
IsNumeric(数値)であれば、If True Thenと同じことになります。
isnumeric5
結果はこんな感じです。
isnumeric6
日付はシリアル値なので実質数値なんですが、書式設定が日付の場合は数字認定されません。書式を数値に変更すればパスします。
' vba
For i = 1 To 3
If IsNumeric(Range("A" & i).Value) Then
Range("B" & i).Value = "数値です"
Else
End If
Next

IsNumeric関数の使い方については以上です。日付かどうかを判定する場合はIsDate関数、空白かどうかはIsEmpty関数の記事をご参照ください。
文字列を判定したい、あるいはTrue/Falseではなくデータ型の名称を取得したい・条件に使いたい場合は、TypeName関数を使います。

やりたいことから方法を探すエクセルExcel操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント