「EXCEL VBA Stringの文字が数値かどうかの判断」
という検索でアクセスがあることに気がつきました。
「vba string 数字判定」
「vba string 数値 判定」
といった検索キーワードでのアクセスも時折あります。
VBAで、String型・文字列型変数に代入されているデータが数値かどうかを判定するには、どうすればいいのかを調べていらしたのでしょうか。
文字列型変数の中身が数値かを判定するサンプルマクロ
Excelでワークシートがアクティブな状態で、以下のExcelマクロを実行してみてください。
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関数は数値であると判定してくれます。
- Newer:AGGREGATE関数をVBAで使うには
- Older:Word VBAで選択範囲を段落に拡張する
Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAで文字列型変数の中身が数値かどうかを判定する-IsNumeric関数