Excel VBA 逆引き集 | 数字以外除去

Excel VBA
スポンサーリンク

整数以外を除去する処理

業務でよくある「入力値から数字だけを取り出したい」というニーズ。
例えば「社員番号は数字だけ」「電話番号は数字だけにしたい」といったケースです。
ここでは 文字列から整数以外の文字を除去するテンプレート を、初心者向けにかみ砕いて説明します。


基本の考え方

  • 目的:
    • 入力文字列から「0〜9」以外を削除して、整数だけを残す
  • よく使う方法:
    • 文字を1文字ずつ取り出して判定
    • Like 演算子で「数字かどうか」を判定
    • 正規表現で数字だけ抽出

テンプレ1:ループで数字だけ残す

Function RemoveNonDigits(ByVal txt As String) As String
    Dim i As Long, ch As String, result As String
    
    result = ""
    For i = 1 To Len(txt)
        ch = Mid(txt, i, 1)
        If ch Like "[0-9]" Then
            result = result & ch
        End If
    Next i
    
    RemoveNonDigits = result
End Function

Sub ExampleUse()
    Dim val As String
    val = "TEL:03-1234-5678"
    
    MsgBox "元の文字列: " & val & vbCrLf & _
           "数字だけ: " & RemoveNonDigits(val)
End Sub
VB
  • ポイント:
    • Mid(txt, i, 1) で1文字ずつ取り出す
    • Like "[0-9]" で数字判定
    • 数字だけを result に追加

テンプレ2:正規表現で数字だけ抽出

Function ExtractDigitsRegex(ByVal txt As String) As String
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")
    
    regex.Pattern = "[^0-9]"   ' 数字以外
    regex.Global = True
    
    ExtractDigitsRegex = regex.Replace(txt, "")
End Function

Sub ExampleRegex()
    Dim val As String
    val = "社員番号: AB12345CD"
    
    MsgBox "元の文字列: " & val & vbCrLf & _
           "数字だけ: " & ExtractDigitsRegex(val)
End Sub
VB
  • ポイント:
    • [^0-9] → 「数字以外」を表す正規表現
    • regex.Replace(txt, "") で数字以外を削除

テンプレ3:整数型に変換(安全に)

Sub ConvertToInteger()
    Dim val As String
    val = "No.00123ABC"
    
    Dim digits As String
    digits = RemoveNonDigits(val)
    
    If IsNumeric(digits) Then
        MsgBox "整数に変換成功: " & CLng(digits)
    Else
        MsgBox "数字が含まれていません。"
    End If
End Sub
VB
  • ポイント:
    • 数字だけ抽出した後に IsNumeric で判定
    • CLng で整数型に変換

例題で練習

'例1:電話番号「TEL:03-1234-5678」から数字だけ取り出す
'例2:社員番号「AB12345CD」から数字だけ取り出す
'例3:抽出した数字を整数型に変換して計算に使う
VB

初心者向けポイント

  • ループ+Likeでシンプルに数字抽出
  • 正規表現を使うと一発で数字以外を削除できる
  • 抽出後はIsNumericで判定してから型変換
  • 電話番号や社員番号など業務でよく使う

👉 この「整数以外除去テンプレ」を覚えておけば、Excel VBAで 文字列から数字だけを取り出し、業務で使える形に整える処理 を簡単に作成できます。

タイトルとURLをコピーしました