<スポンサーリンク>
VBAでプログラムを組んでいると、正直R1C1表記で行きたいところが、
自分以外でも使うことを考えて、そのままの設定で行くことが多いです。
そんな時に困るのが、列の英語(アルファベット)と数字の対比です。
今回はそんな列の英語を数字にする方法を紹介していきたいと思います。
【VBA】列の英語(アルファベット)⇒数字に変換する方法
列の英語を数字に変換する方法は、
下記のとおりです。※ダブルクリックしてコピーできます。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 | Sub AA() '英語→数字に変換 RETU = InputBox( "列名(英語)を入力" , , "AU" ) RETUN = Cells(1, RETU).Column MsgBox RETUN '<参考>数字→英語に変換 Dim RETU2 As Integer RETU2 = InputBox( "数字を入力" , , "95" ) RETUN2 = Cells(2, RETU2).Address(ColumnAbsolute:= False ) RETUN2 = Left(RETUN2, InStr(RETUN2, "$" ) - 1) MsgBox RETUN2 End Sub |
プログラムの説明
実は、CELLSの使い方として
1 | Cells(1, "C" ) |
と表記すると、セル「C1」を選択することが可能です。
こんな使い方をする人は少ないので知られていませんが。。
ですので、セルの.Columnと組み合わせて、
1 | Cells(1, "C" ).Column |
で、セルの英語を数字に変換することが可能です。
charなどを用いる方法がありますが、これが一番簡単だと思います。
≪参考≫数字→アルファベット
参考までに数字→アルファベットに変換する方法は、
.Address(ColumnAbsolute:=False)
を用いて、セルのアドレスを「CA$1」で表し、
「InStr("CA$1", "$")」で$を検索。その前までの英語を取り出します。
コメント欄