色々なことをメモします。パソコン(Excel)とか、音楽(ピアノ、エアロフォン、エレクトーン)とか。
 【Excel】文字列の中の数字(文字列)を取り出したい
2021年08月25日 (水) | 編集 |
GetNum関数

Excelで文字列の中の数字を取り出したいという場面がありました。
例えば、「at215-00008g785」という文字列があったとします。
そこから、「215」「00008」「785」という数字を取り出したいという感じです。

どうしたらいいかなぁと思い、ユーザー定義関数でやってみることにしました。
VBAの標準モジュールに下記のように入力しました。
Function GetNum(txt As String, Optional n As Long = 1) As String
    Dim reg As Variant
    Dim regmth As Variant
    Dim num As String
    
        Set reg = CreateObject("VBScript.RegExp")

        With reg
            .Pattern = "\d+"
            .Global = True
            
            Set regmth = .Execute(txt)
            
            num = regmth(n - 1)
        End With
        
        Set reg = Nothing
        Set regmth = Nothing
        
        GetNum = num
End Function
GetNumという関数にしました。
第1引数は、数字が含まれている文字列を指定します。
第2引数は、何個目の数字を取り出すかを指定します。
省略すると、1つ目になります。

B列に数式を入力します。
B1=GetNum(A1)
B2=GetNum(A2,2)
B3=GetNum(A3,3)
B4=GetNum(A4,4)
とりあえずは思ったようには出来たのでよかったのですが、これがベストな答えかどうかはわかりません(^_^;)

久々のExcel記事でした。


関連記事