Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAで文字列型変数の中身が数値かどうかを判定する-IsNumeric関数

VBAで文字列型変数の中身が数値かどうかを判定する-IsNumeric関数

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2209 ビルド15629.20156 Microsoft Store)

「EXCEL VBA Stringの文字が数値かどうかの判断」
という検索でアクセスがあることに気がつきました。

「vba string 数字判定」
「vba string 数値 判定」
といった検索キーワードでのアクセスも時折あります。

[スポンサードリンク]

VBAで、String型・文字列型変数に代入されているデータが数値かどうかを判定するには、どうすればいいのかを調べていらしたのでしょうか。

文字列型変数の中身が数値かを判定するサンプルマクロ

Excelでワークシートがアクティブな状態で、以下のExcelマクロを実行してみてください。

Sub 数値かどうか判定する()
 Dim var As String
 var = ActiveCell.Value

 If IsNumeric(var) Then
  MsgBox "数値です!"
 Else
  MsgBox "数値ではありません。"
 End If
End Sub

アクティブセルに入力されているデータに応じて、
「数値です!」
「数値ではありません。」
メッセージボックスが表示されます。

サンプルマクロで行っている処理

String型で宣言した変数varに、アクティブセルの値を代入して、

Dim var As String
var = ActiveCell.Value

VBAのIsNumeric関数で

判定を行って、

If IsNumeric(var) Then

判定結果に応じたメッセージボックスを、MsgBox関数で表示しています。

 MsgBox "数値です!"
Else
 MsgBox "数値ではありません。"

ローカルウィンドウで確認しましょう

拙著『いちばんやさしいExcelVBAの教本』等で多用している、VBE(Visual Basic Editor)のローカルウィンドウで、変数varの中身を確認しておきましょう。

たとえば「123」と入力してから、[セルの書式設定]ダイアログボックス-[表示形式]タブの[分類]欄で[その他]を選択して、[大字(壱百弐拾参阡四百)]を指定したようなセルがアクティブであっても、

下図のように文字列としての「123」と認識されつつも、

IsNumeric関数は数値であると判定してくれます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAで文字列型変数の中身が数値かどうかを判定する-IsNumeric関数

「条件分岐」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.