
ユーザー関数 Excel 2013 マクロ講座 65回
Web上のデータや資料として渡されたCSVデータをExcelで開いたら、文字列の中に数字が混在して困ってしまうことがあります。
Excelでセルから数値のみを抽出したい、文字のみを抽出したいという要望は、既存の関数では対処できない場合もあります。文字列の長さや数値に規則性がない場合です。
今回は、文字列の長さが一定でない場合にも対処できる「文字列から数値だけを抽出するユーザー定義関数」を作ります。
(サンプルファイルは、こちらから マクロ65回サンプルデータ)


Function Getcellfig(範囲 As String) As Long
Dim 数値 As Long
Dim i As Integer
For i = 1 To Len(範囲)
If IsNumeric(Mid(範囲, i, 1)) Then
数値 = 数値 & Mid(範囲, i, 1)
End If
Next i
Getcellfig = 数値
End Function
使っているVBA関数は、Len関数,IsNumeric関数,Mid関数となります。





Function Getcellfig(範囲 As String) As Long
Dim 数値 As Long 'セルに含まれる数値をLong型の変数に
Dim i As Integer '文字列の1つ1つの順番
For i = 1 To Len(範囲) '文字数分繰り返す
If IsNumeric(Mid(範囲, i, 1)) Then '数値ならば
数値 = 数値 & Mid(範囲, i, 1) '変数数値に数値を追加する
End If
Next i
Getcellfig = 数値
End Function