- ベストアンサー
VBA Target.ColumnをRangeへ
Excel VBAについてお尋ねいたします。 Excel VBAにて現在選択しているセルの列番号をTarget.Columnで取得することが出来ますが、Target.Columnで取得した列番号(数字)をRange方式のアルファベットに変換する方法はございますでしょうか? Range形式のアルファベットに変換してから、セルに=○○という数式を出力させたいです。 選択する列は、N列~右端までの間です。 取得した列番号を26で割って26で割って26で割って…を繰り返して、商と余でアルファベットを形成するという方法を考えましたが、その場合でもどうやって記述すればいいですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
計算すると復雑になる。 システムの力を借りるべき。 本来、この関数があってほしいが。列番号ーー>列記号の変換関数。その逆も。 (B列のBは、列記号とは言わず、列番号というようだが) 下記が、今までの小生の考察では、一番良い。 標準モジュールに Sub test01() '--BT5の例 例えば111を入れておく n = 72 ' Target.Columnで得た数値。 第72列目はBT列ですが、 r = 5 '--- x = Cells(1, n).Address MsgBox x c = Split(x, "$") MsgBox c(1) '0でなく、1です MsgBox Range(c(1) & r) End Sub 判ったら、Msgbox行は省き、Target.Columnとつなげてください。
その他の回答 (1)
- kkkkkm
- ベストアンサー率66% (1719/2589)
回答No.1
Replace$(Target.Cells(1).Address(0, 0), Target.Cells(1).Row, "") という手法があるようです。