文字列から複数の数字を抜き出す関数です。文字列内に複数の数値がある場合「,」区切りで結果を表示します。文字列が付いた数字をそのままで計算式に利用したい時や複数ある数値データだけ抜き出ししたい場合に便利です。
VBEの標準モジュールに下のコードを登録して「Excelマクロ有効フォーム」で保存してください。
関数の登録方法は⇒♯000 ユーザー定義関数を登録する方法
登録されたら、シート上からユーザー関数「NumExtS」が使用できます。
使い方は
ワークシート上で = NumExtS (文字列)の関数として使用できます。
【例】
NumExtS (“1,500円”) → 1500
NumExtS (“2丁目3番1号”) → 2,3,1
Function NumExtS(S)
’ 文字列から数字を抜き出す関数,数字が複数ある場合コンマ区切りで表示する
On Error GoTo EXITFUN
Dim i1 As Long
Dim i2 As Long
Dim LenS As Long
Dim N As String
If S = “” Then
NumExtS = “”
Exit Function
End If
If IsNumeric(S) = True Then
NumExtS = S
Exit Function
End If
S = StrConv(S, vbNarrow)
LenS = Len(S)
For i1 = 1 To LenS
For i2 = 0 To 9
If Mid(S, i1, 1) = i2 Then
N = N & i2
GoTo EXITFOR
End If
Next
If Mid(S, i1, 1) = “.” Then
N = N & “.”
ElseIf Mid(S, i1, 1) = “,” Then
N = N & “”
Else
N = N & “,”
End If
EXITFOR:
Next
For i = 1 To LenS
N = Replace(N, “,,”, “,”)
Next
If Left(N, 1) = “,” Then
N = Mid(N, 2, Len(N) – 1)
End If
If Right(N, 1) = “,” Then
N = Mid(N, 1, Len(N) – 1)
End If
NumExtS = N
EXITFUN:
End Function
ここで紹介したコード使用による損害に対しては一切責任は負えません。