- ベストアンサー
Excellの列名を得るには?
Excellの列名を得るには? ワークシート上で通常列名はA,B,Cです。 ところが、=cell("col",X1)では1,2,3・・となります。 このcolは列番号と説明されています。列名としてA,B,C・・と表現するにはこの式をどう変更しましょうか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1です ゴメンなさい =CHAR(cell("col",X1)+64) でした。
その他の回答 (6)
- merlionXX
- ベストアンサー率48% (1930/4007)
一応、 =SUBSTITUTE(ADDRESS(ROW(BX5),COLUMN(BX5),4),ROW(BX5),"") で、列名のBXが求められますが、式を書く段階でBXと入力するので、あまり意味がないのではないでしょうか?
- imogasi
- ベストアンサー率27% (4737/17069)
下記のような方法で判ると思う。 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)
◆こんな方法はいかがでしょうか? =SUBSTITUTE(ADDRESS(1,CELL("col",X1),4),1,)
》 =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)
お礼
AA列以右では別の式になることを教えてもらいました。今回は使いませんでしたが、別の機会には使わせてもらうことにします。ありがとうございました。
- shikisaito
- ベストアンサー率52% (257/491)
# かなり強引ですが... =IF(CELL("col",X1)<27,"",CHAR(INT((CELL("col",X1)-1)/26)+64))&CHAR(MOD(CELL("col",X1)-1,26)+65)
=CHAR(cell("col",X1)+32)
お礼
使わせてもらいました。ありがとうございました。