• ベストアンサー

Excellの列名を得るには?

Excellの列名を得るには? ワークシート上で通常列名はA,B,Cです。 ところが、=cell("col",X1)では1,2,3・・となります。 このcolは列番号と説明されています。列名としてA,B,C・・と表現するにはこの式をどう変更しましょうか?

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

  • ベストアンサー
noname#79209
noname#79209
回答No.2

#1です ゴメンなさい =CHAR(cell("col",X1)+64) でした。

aerio
質問者

お礼

使わせてもらいました。ありがとうございました。

その他の回答 (6)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.7

一応、 =SUBSTITUTE(ADDRESS(ROW(BX5),COLUMN(BX5),4),ROW(BX5),"") で、列名のBXが求められますが、式を書く段階でBXと入力するので、あまり意味がないのではないでしょうか?

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

下記のような方法で判ると思う。 Sub test01() col = 50 s = Cells(1, col).Address MsgBox s x = Split(s, "$") MsgBox x(1) End Sub ーーーー ユーザー関数化すると 標準モジュールに Function colk(a) s = Cells(1, a).Address x = Split(s, "$") colk = x(1) End Function ーー シートで 関数で =colk(50) でAXが返る。 ーー しかし列番号で、(関数、VBAとも)ほとんど用が足りるのに、と思う。 またA,B,C・・も列記号とは言わないようだ、列番号のまま。 列名も他の使い方が多いのでは(自信なしだが)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

◆こんな方法はいかがでしょうか? =SUBSTITUTE(ADDRESS(1,CELL("col",X1),4),1,)

noname#204879
noname#204879
回答No.4

》 =cell("col",X1)では1,2,3・・となります 参考までに、=COLUMN(X1) でも「1,2,3・・となります」よ。 》 列名としてA,B,C・・と表現するにはこの式をどう変更しましょうか? AA列以右にも対応させたいなら、次式で可能です。 =LEFT(ADDRESS(1,CELL("col",A1),2),FIND("$",ADDRESS(1,CELL("col",A1),2))-1)

aerio
質問者

お礼

AA列以右では別の式になることを教えてもらいました。今回は使いませんでしたが、別の機会には使わせてもらうことにします。ありがとうございました。

回答No.3

# かなり強引ですが... =IF(CELL("col",X1)<27,"",CHAR(INT((CELL("col",X1)-1)/26)+64))&CHAR(MOD(CELL("col",X1)-1,26)+65)

noname#79209
noname#79209
回答No.1

=CHAR(cell("col",X1)+32)