<スポンサーリンク>

【VBA】列の英語→数字に変換する方法

この記事は約2分で読めます。
コピーボタン
記事のタイトルとURLをコピー
<スポンサーリンク>

VBAでプログラムを組んでいると、正直R1C1表記で行きたいところが、
自分以外でも使うことを考えて、そのままの設定で行くことが多いです。

そんな時に困るのが、列の英語(アルファベット)と数字の対比です。

今回はそんな列の英語を数字にする方法を紹介していきたいと思います。

スポンサーリンク

【VBA】列の英語(アルファベット)⇒数字に変換する方法

列の英語を数字に変換する方法は、
下記のとおりです。※ダブルクリックしてコピーできます。

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の使い方として

Cells(1, "C")

と表記すると、セル「C1」を選択することが可能です。
こんな使い方をする人は少ないので知られていませんが。。

ですので、セルの.Columnと組み合わせて、

Cells(1, "C").Column

で、セルの英語を数字に変換することが可能です。

charなどを用いる方法がありますが、これが一番簡単だと思います。

≪参考≫数字→アルファベット

参考までに数字→アルファベットに変換する方法は、

.Address(ColumnAbsolute:=False)

を用いて、セルのアドレスを「CA$1」で表し、

「InStr("CA$1", "$")」で$を検索。その前までの英語を取り出します。

コメント欄

<スポンサーリンク>
タイトルとURLをコピーしました