スポンサーリンク

Excel VBAで列番号と列文字列の相互変換方法

スポンサーリンク

ExcelのVBAでプログラミングを行っている時、列文字列(A列やZ列などのアルファベット文字)から列番号を取得したい時があります。またその逆もよくあります。
今回は列番号<=>列文字列の変換に役立つ方法を紹介します。

列番号 => 列文字列変換方法

セルのアドレス情報を取得するAddressプロパティを使用します。
ただ、Addressプロパティの戻り値は「$A$1」の形式になっているので工夫が必要です。列は相対参照形式(「$」が付く)で取得し、行は絶対参照形式(「$」が付く)で取得します。「A$1」の形で取得でいれば、Split関数を使用して「$」で分割して1つ目の値を取得すれば目的の列文字列が取得できます。
Functionを作るならこうなります。

' 列番号=>列文字列変換
Function GetColNumToAlpha(col As Long) As String
    GetColNumToAlpha = Split(Cells(1, col).Address(True, False), "$")(0)
End Function

列文字列 => 列番号変換方法

カラム情報を取得するColumnプロパティを使用します。
こちらは特に工夫することなくColumnプロパティの値をそのまま使用します。
Functionを作るならこうなります。

' 列文字列=>列番号変換
Function GetColAlphaToNum(alpha As String) As Long
    GetColAlphaToNum = Columns(alpha).Column
End Function

コメント