この記事では列名から列番号を調べる方法と、エクセルVBAを用いて、列番号から列名&列名から列番号を取得する関数について説明します。
列名から列番号を調べる方法
エクセルVBAでコードを書いている時に、「AB列は列番号いくらだったっけ?」となる時ありますよね?
コード例
ActiveSheet.Cells(ACTROW, ?).Value = Worksheets(“元シート”).Cells(MOTOROW, MOTOCOL).Value
画面上左から数えれば良いのですが、スクロールが必要になると数え間違えしてしまうことも・・・
列番号と列名が一目でわかる早見表
注意!:ExcelVBAでは列の開始番号が1ですが、Power Automateやpythonなどからエクセルを操作するときの列番号の開始は0の場合がありますので、その場合にはこの早見表の番号-1を入力ください。
調べたい列名や列番号が決まっている場合には、この表を活用ください。
列番号と列名を取得する関数
エクセルVBAで列番号と列名を相互に変換するコードを紹介します。
エクセルVBAでFomulaプロパティに数式を入力する場合に列番号がわかっているけど、列名に変換したい場面があると思いますので、その時にこれらの関数を利用すれば取得できます。
プログラムを実行した結果はこちらです。
列番号から列名を取得する関数はこちらです。コードをコピーして活用ください。
Function Col2Name(ByVal colnum As Long) As String
'列番号から列名に変換
Col2Name = Split(Columns(colnum).Address, "$")(2)
End Function
列名から列番号を取得するコードはこちらです。
Function Name2Col(ByVal colName As String) As Long
'列名から列番号に変換
Name2Col = Columns(colName).Column
End Function
最後に
列番号や列名が固定の場合には一覧表を、変数などで列番号や列名が変化して、それを調べたいときには関数を活用ください。
ほかにもエクセルVBAに関する記事もありますので、読んでいただけると幸いです。
コメント