[Excel VBA] セルの形式をR1C1形式からA1形式に変換

なぜ、今まで知らなかったのだろう...

というか何で今までちゃんと調べなかったのだろう?
セルの形式をR1C1形式からA1形式に変換するのに自作関数まで作ってたことがとてもばからしい...
あるはずだとは思っていたのだが、見つからなかった。ヘルプでキーワード検索しても、全文検索しても... オブジェクトパッケージャで上から順に怪しいメソッドを順に試せば、わかったはずだった。しかしやらなかった。
結論を言うと、Cells もしくは Range オブジェクトには Address というプロパティがあって、それを利用するとセルもしくは範囲がA1形式の絶対表記で取得できる。セル自体を参照する分には必ずしも必要ではないが、列を選択する際にはA1形式の方が圧倒的に表記が楽だ!
使い方はこんな感じ...

    With Worksheets(1)
        Debug.Print .Range(.Cells(1, 1), .Cells(1, 1)).Address
        Debug.Print .Cells(1, 1).Address
    End With

Excelには便利な機能があるが、使い方を知らないものたくさんある。
今一番知りたいのは、オートフィルタでフィルタされずに表示されている行だけ、ループで順に処理できる方法。わかったらまたここにメモしておくことにしよう。

しかし、最近の Office のヘルプはとても使いづらい...

あとで、わかったことだが、列選択する際にこんな面倒な変換を行わずとも、Columns プロパティを使えば列選択できることがわかった。ただし1列選択の場合のみだが、たいていのプログラムは問題ないだろう...

コメント (0件)


くろねこ研究所
https://www.blackcat.xyz/article.php/ProgFAQ-Xls_R1c1toA1