ここから本文です

Excel VBA で、 Range(”A1”) で、Aを取得したい(列をアルファベットで取得した...

ak_185さん

2007/10/323:50:46

Excel VBA で、
Range(”A1”)
で、Aを取得したい(列をアルファベットで取得したい)のですが、どうすればよいですか?

Range(”A1”).Column
だと1が返ってきます。

補足補足です。
”AA1” → ”AA”
”A11” → ”A”
の場合もあります。
ご提示のコードだと、正しく取得できないと思います。

閲覧数:
22,019
回答数:
3

違反報告

ベストアンサーに選ばれた回答

f5d6c3d3さん

2007/10/420:00:04

Split(Range("A1").Address,"$")(1)
が簡単でよいと思います。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

my_offiseさん

編集あり2007/10/414:06:01

普通は 質問のような「戻り値 ※列番号の整数」を利用するんですが?
どんな目的かは知りませんが こんな面倒なことは無用です
あえてするんなら

Sub sanp()
Dim myStr As String
myStr = Left(Range("a1").Address(False, False), 1)

MsgBox myStr
End Sub

でも・・・・列選択の場合 質問のような考え方では 行き詰まります。
※文字列で組み合わせての組み立てになるので 推奨は出来ません

追記
変数 myStr には この場合(A1選択時)文字列の Aが入ります
Left("A1",1) =A

・・・・・・・・ 不本意ながら 文字操作の延長で ・・・・
Dim myStr As String, i As Integer, n As Integer
'myStr = Range("a1").Address(False, False)
myStr = Cells(1, 31).Address(False, False)
For i = 1 To Len(myStr)
If (Asc(Mid(myStr, i, 1)) >= 65 And Asc(Mid(myStr, i, 1)) <= 90) Then n = n + 1
Next i
If n <> 1 Then
myStr = Left(myStr, 2)
Else
myStr = Left(myStr, 1)
End If

MsgBox myStr

何のために 列番号をアルファベットで取得するんか聞くとか、目的の為の手法を聞いたほうが早いかも?

2007/10/401:06:02

こういうときは自作の関数を作るですよ。

エクセルでは元々chr()という数値(アスキーコード)を対応の文字に変換する関数がサポートされています。
また、文字からアスキーコードを取得するasc()という関数もあります。

ここらへんを使えばなんかできそうです。

一個注意しないといけないのが、26列目以降、例えば27列目はエクセルでは『AA』という表記になるところです。
ここをどうするかが問題ですね。これは実は簡単で、十進数で返ってくる数値をA~Zの26文字で再表現する、つまり26進数に直すという感じの操作をします。10進数のX進数への変換は、割っていって最後に余りを結合するという感じです。

まあ、アドレスを取得して(range("a1").addressという感じ)、アルファベット部分だけ抜き出すという感じでも良いですが、なんとなくこっちを推します。

実際組んでみました。エイ。分からないところがあったら補足してね。

Function GetAlphFromNum(N As Integer) As String

Dim place()

Do

ReDim Preserve place(i)

place(i) = (N - 1) Mod 26 + 1

If N <= 26 Then Exit Do

N = (N - 1) \ 26

i = i + 1

Loop


For i = UBound(place) To 0 Step -1

GetAlphFromNum = GetAlphFromNum & Chr(place(i) + Asc("A") - 1)

Next

End Function

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

5文字以上入力してください

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。