ray88’s diary

お仕事で困ったとき用の自分用の覚書

Excel VBA セルアドレスのアルファベット部分、行数部分をそれぞれ取得する

■呼び出し元プロシージャ

Sub セルアドレス情報取得()
    Dim strChr As String
    Dim strNum As String    
    Call infoCellAddress("H3", strNum, strChr)
    'アルファベット部分出力
    MsgBox strChr
    '行数部分出力
    MsgBox strNum
End Sub

■呼び出し先プロシージャ

Sub infoCellAddress(strCellAddress, strNum, strChr)
'------------------------------------------------
'機 能:セルアドレス(String型)より行数のみと
'       列名のアルファベットのみを個別に抜き出す
'引数1:セルアドレス(String型)
'引数2:行数格納用変数(String型)
'引数3:列名アルファベット格納用変数(String型)
'-----------------------------------------------
        '取得したセルアドレスからRowの数字のみ、アルファベットのみを取り出す
        With CreateObject("VBScript.RegExp")
            .Global = True
            '数字のみを取り出す
            .Pattern = "[A-Z,$]*"
            strNum = .Replace(strCellAddress, "")
            'アルファベットのみを取り出す
            .Pattern = "[1-9,$]*"
            strChr = .Replace(strCellAddress, "")
        End With
End Sub

■出力結果