- ベストアンサー
エクセルVBAにて アルファベットを数字に変換
エクセルで、例えば J列は10列目で、 AB列は28列目ですよね。 VBAにて 入力がJだったら10を出力、 ABだったら28を出力 してくれるコードってどう書けばいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 Sub Retuno() X = InputBox("列を示す文字列を入力してください。") Y = Range(X & "1").Column Z = MsgBox(X & "は" & Y & "です", vbOKOnly) End Sub
その他の回答 (2)
こんばんは。 >入力がJだったら10を出力 ということは、入力したセルの列番号を数値で出力したいと言うことですね。 シートモジュールに Private Sub Worksheet_Change(ByVal Target As Range) MsgBox Target.Column End Sub としみてください。
お礼
回答ありがとうございます。 >ということは、入力したセルの列番号を数値で出力したいと言うことですね。 そうではなくて、他の方の回答が質問の意図です。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 現在のところは、二桁までです。 ユーザー定義関数を作りました。"ZZ" まで、出力可能です。 大文字・小文字は可能ですが、全角は受けないようにしてあります。 Sub Test() Dim d As Integer d = Alpha2Num("AB") MsgBox CStr(d) End Sub Function Alpha2Num(ByVal arg As String) Dim i As Integer Dim j As Integer arg = StrConv(arg, vbLowerCase) If arg Like "[a-z]*" Then If Len(arg) = 2 Then i = (Asc(Mid(arg, 2, 1)) - 96) j = (Asc(Mid(arg, 1, 1)) - 96) * 26 Else i = (Asc(arg) - 96) End If End If Alpha2Num = j + i End Function
お礼
回答ありがとうございます。 このような答えを期待して質問しましたが、エクセルを使うなら NO1の方の回答がシンプルで良いかも。
お礼
回答ありがとうございます。 エクセルVBAを使うならこの方法が一番シンプルで 良いですね。