投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/2/5 17:30:58
> VB2008以降、.NET Framework2.0以降で動作します。

便乗して、VB2005 対応案を幾つか。(result0 のみ、VB2008以降が対象となります)
'Dim result0 As String = Array.FindAll(text.ToCharArray(), Function(c) c Like "[0-9]") 
Dim result1 As String = Array.FindAll(text.ToCharArray(), AddressOf Char.IsDigit)
Dim result2 As String = Array.FindAll(text.ToCharArray(), AddressOf Char.IsNumber)
Dim result3 As String = Array.FindAll(text.ToCharArray(), AddressOf IsNumeric)


なお、変換元データが
Dim text As String = "X1弐Ⅲ4"
だった場合、これらは以下のような結果となります。

【Option Compare Text モードの場合】
result0 = "1Ⅲ4"
result1 = "14"
result2 = "1Ⅲ4"
result3 = "14"

【Option Compare Binary モードの場合】
result0 = "4"
result1 = "14"
result2 = "1Ⅲ4"
result3 = "14"


# 全角数字を数値化する場合、Val("123") は 0.0 ですが CDbl("123") は 123.0 です。