• ベストアンサー

EXCEL VBAでの数値から列名取得

EXCEL(Excel2003)のVBAで数値から列名を取得する関数 はないでしょうか。 例えば1と指定すればAを取得し、5を指定すればEを取得するというような感じです。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.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

palban
質問者

お礼

この場を借りてお礼申し上げます。 みなさんの意見とても参考になりました。 ほんと助かりました。 ありがとうございました。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

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)
回答No.3

数値を列名に直すのは何故? 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)
回答No.2

Dim RETU RETU = Array("", "A", "B", "C", "D", "E", "F") Range(RETU(1) & 1) = "A1" Range(RETU(1) & "2") = "A2" のような方法もあります。

  • imaruya
  • ベストアンサー率34% (63/181)
回答No.1

VBAの関数には無いようですが、ワークシート関数にAdressというものがあります。こちらを利用されてはいかがでしょうか。 詳細はExcelのヘルプでご確認下さい。

関連するQ&A