文字操作 文字列中の数値だけ取り出します

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Option Explicit


Sub NumericalValue()
'*********************************
'文字列中の数値だけ取り出します
'*********************************
Dim strTest(6) As String

strTest(1) = "これは10000個です。"  'ケース①
strTest(2) = "10000個です。"        'ケース②
strTest(3) = "  10000個です。"      'ケース③
strTest(4) = "  10,000個です。"     'ケース④
strTest(5) = "  10000.5個です。"    'ケース⑤
strTest(6) = "10000個です。"   'ケース⑥

MsgBox Val(strTest(1)) 'ケース① 結果[0]
MsgBox Val(strTest(2)) 'ケース② 結果[10000]
MsgBox Val(strTest(3)) 'ケース③ 結果[10000]
MsgBox Val(strTest(4)) 'ケース④ 結果[10]
MsgBox Val(strTest(5)) 'ケース⑤ 結果[10000.5]
MsgBox Val(strTest(6)) 'ケース⑥ 結果[0]

'※Val関数 先頭から検索し数値でない場合は終了します。
'ケース① 先頭文字が数値ではない場合、終了し[0]を返します。
'ケース② 結果[10000]
'ケース③ 空白は無視して検索します。
'ケース④ 桁区切りの[,]は数値とは認識しません。
'ケース⑤ 少数点は認識します。
'ケース⑥ 全角数字は認識しません。
'※文字列内に2つの数値があった場合は最初の数値だけ認識します。

End Sub

 

 

 

2000年01月01日|[VBサンプルコード]:[文字操作]