読者です 読者をやめる 読者になる 読者になる

セルの中の数字の部分だけを抽出

ExcelVBA

標準のVALUE()だと数字以外の文字が入っているとエラーになっちゃう。
オリジナルマクロにするのが楽みたい

'オリジナルValue()
'最初の数字部分を返す
'整数でいいなら  As Integer でいいよ  
Function convValue(aArg) As Double

    Dim objRE      As Object
    Dim strText    As String
    Dim objMatches As Object
    Dim i

    Set objRE = CreateObject("VBScript.RegExp")

    objRE.Pattern = "[\d]+"
    objRE.Global = True

    strText = aArg

    Set objMatches = objRE.Execute(strText)

    For i = 0 To (objMatches.Count - 1)
    
        convValue = objMatches.Item(i).Value
        Exit For
    
    Next

    Set objRE = Nothing


End Function


ネタ元