VBAで列番号を取得する構文│列番号をアルファベットに変換する

この記事では、主にCellsプロパティを使った場合のExcelの数値の列番号をアルファベットで取得するVBAコードを紹介します。

Cellsプロパティは、変数を使ってセルを指定する際には、基本的にRangeプロパティよりも使い勝手がよいのですが、列を数値で表現するため、人間の作業と混在するようなExcelシートの場合、視認性や効率性を損ねるケースもあります。

例えば、88列目をアルファベットで表記する必要がある場合、感覚的に分かりませんので、数えるのに苦労します。

数値の列番号をアルファベットで取得するVBAコードを紹介しますので、しっかりと抑えておきましょう。

目次

VBA│数値の列番号をアルファベットで取得する

この章では、88列目の列番号につき「アルファベットにすると何列目か」を取得するVBAコードを紹介します。下記のようにExcel画面を見れば一目瞭然ですが、下記はイメージ画像として掲載していることをご了承ください。

基本構文

object. Address

  • object = 列番号をアルファベットで取得する対象のセル
    この例では、88列目です
  • Address = 数値の列番号をアルファベットで取得するプロパティ

Addressプロパティは数値の列番号をアルファベットで返します。

Addressプロパティ

Sub Sample()

Dim s As String
s = Split(Cells( 1 , 88 ). Address, “$”)(1)

MsgBox s

End Sub

VBAコード解説

Addressプロパティを使って列番号をアルファベットで取得した場合には、「$CJ$1」の形式に変換されます。

Split関数を使っていない状態

この場合、必要な情報は CJ という列番号を表現するアルファベットの箇所のため、$ の記号を対象にSplit関数で分割します。Split関数で分割した際は、それぞれの要素が配列形式となり、2番目の要素にアルファベットの列番号が取得されています。

2番目の配列を取り出すためには、VBAコード上では末尾に(1)という構文で指定します。
※配列の要素は、0から開始されるため。

今回紹介したVBAコードでは、便宜上、88列目として数値で指定していますが、実務上では数値の列番号は変数になるケースが多くなります。

よかったらシェアしてね!
  • URLをコピーしました!
目次