- ベストアンサー
cellsプロパティ列名をアルファベットに変える
●質問の主旨 cellsプロパティで表された列名をアルファベットに 変えるためにはどのようなコードを使えばよいでしょうか? 例)cells(4,5)→E列 ●質問の補足 cellsプロパティで取り出された行数を Rangeプロパティを表したいと考えております。 上記の例を使うと、 Range("cells(4,5)→E列 & 4")というプロパティを作成し、 Setステートメントを使用した「Rangeオブジェクト」に したいと考えております。 ご存知のかたご教示よろしくお願い申し上げます
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>cellsプロパティで表された列名をアルファベットに >変えるためにはどのようなコードを使えばよいでしょうか? Sub macro() ’変数Aの値が列名のアルファベットです。 Dim A As String A = Split(Cells(4, 5).Address, "$")(1) MsgBox Range(A & 4).Address End Sub わざわざアルファベットに変える必要性はないです。 Dim R As Range Set R = Cells(4, Cells(4, 5).Column) こうすれば、いいです。
その他の回答 (4)
- nda23
- ベストアンサー率54% (777/1415)
Cells(4,5)はRangeオブジェクトです。 面倒なことをしなくても設定できます。 Dim 範囲 As Range Set 範囲 = Cells(4, 5) 他には Set 範囲 = Range(Cells(1, 1), Cells(4, 5)) と言うのもあります。 どうしても英字にしたいなら次のように します。 Dim 列位置 As Long Dim 列記号 As String 列位置 = Cells(4, 5).Column - 1 列記号 = IIf(列位置 < 27, "", Chr(64 + (列位置 \ 26))) _ & Chr(65 + (列位置 Mod 26 ))
お礼
nda23様 ご回答ありがとうございます。 上記のコード参考にさせていただきます。
- MARU4812
- ベストアンサー率43% (196/452)
27進数だと考えれば自作関数で数値を文字列の ならびに変換するのもそれほど難易度の高い話 ではないです。
お礼
MARU4812 ご回答ありがとうございます。 アドバイス参考にさせていただきます。
- mu2011
- ベストアンサー率38% (1910/4994)
NO1です。(追記) アルファベットでなくA1表記がご希望なら、Range(Cells(4, 5).Address(0, 0))で良いですよね。
お礼
mu2011様様 たびたびのご回答ありがとうございます。 追記の例も参考にさせていただきます。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 Left(Cells(4, 5).Address(0, 0), 1)
お礼
mu2011様 お礼が遅くなり恐縮です。 上記の例、参考にさせていただきます
お礼
kybo様 ご回答ありがとうございます。 上記のコード参考にさせていただきます。