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
コメント