- ベストアンサー
EXCEL VBAでの数値から列名取得
EXCEL(Excel2003)のVBAで数値から列名を取得する関数 はないでしょうか。 例えば1と指定すればAを取得し、5を指定すればEを取得するというような感じです。 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでどうでしょうか? Sub 列番号_列名変換() Dim ColNum ColNum = Val(InputBox("列番号?")) If ColNum >= 1 And ColNum <= 256 Then MsgBox "その列名は、" & Mid(Cells(1, ColNum).Address, 2, _ InStr(Cells(1, ColNum).Address, "1") - 3) & " です。" Else MsgBox "その番号の列名は、無いっちゅうのぉ~!!" End If End Sub
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
Sub test02() a = WorksheetFunction.Choose(2, "A", "B", "C", "D") MsgBox a End Sub と言うようなのがあります。 列数が256列になったら記述が大変です。 Sub test03() i = InputBox("i=") n = Asc("a") + i - 1 MsgBox Chr(n) End Sub なんてどうでしょう。 しかし実際問題として、Cellsで使うケースが多いと思うが、 Cells(1,”A”)でもCells(1,1)でも A1を表せるので使うケースはそう多くないでしょう。
- papayuka
- ベストアンサー率45% (1388/3066)
数値を列名に直すのは何故? Sub Test1() ActiveSheet.Columns(5).Select End Sub で E列を選択しますが、、、 Addressなどを表示したいなら Sub Test2() With ActiveCell MsgBox .Address & vbCrLf _ & .Column & "列目" & vbCrLf _ & .Row & "行目" End With End Sub
- hana-hana3
- ベストアンサー率31% (4940/15541)
Dim RETU RETU = Array("", "A", "B", "C", "D", "E", "F") Range(RETU(1) & 1) = "A1" Range(RETU(1) & "2") = "A2" のような方法もあります。
- imaruya
- ベストアンサー率34% (63/181)
VBAの関数には無いようですが、ワークシート関数にAdressというものがあります。こちらを利用されてはいかがでしょうか。 詳細はExcelのヘルプでご確認下さい。
お礼
この場を借りてお礼申し上げます。 みなさんの意見とても参考になりました。 ほんと助かりました。 ありがとうございました。