VBA:半角数値かどうか判定する方法(RegExpオブジェクト)
1.やりたいこと
半角数値かどうか判断したい。
※「IsNumeric関数」だと全角の数値も「True」が返ります。
2.「RegExp」を利用する
このオブジェクトを使うと、半角数値かどうか判定してくれます。
「RegExpオブジェクト」を利用する必要があり、以下の「参照設定」の設定が必要です。
VBAエディターで「ツール」→「参照設定」→「Microsoft VBScript Regular Expressions 5.5」にチェックをいれてください。
検索パターンは以下のようなものがあります。
説明 | 例 | パターン |
数字 | 1234 | [0-9] |
数字+小数点 | 12.56 | [0-9\.] |
数字+小数点+カンマ | 1,234.56 | [0-9\.\,] |
3.サンプルコード
以下のVBAを組み込めば半角数値かどうかの判定ができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Function IsNumericRegExp() As Boolean Dim chk_reg As New RegExp dim chk_Data As String chk_Data ="1234" '//検索条件' '//半角数値の形式のみ' chk_reg.Pattern = "^[0-9]+$" '//最後までチェックする' chk_reg.Global = True '//半角数値のみならTrueを返す' If chk_reg.Test(chk_Data) = False Then IsNumericRegExp = False Else IsNumericRegExp = True End If End Function |
関連記事