NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

EXCEL VBA(アルファベット→数値変換関数)

「アルファベット→数値」変換関数
 EXCEL VBARange関数で指定する列記号を、Cells関数で指定する列番号に変換します。
 Range関数で使用している列記号をCells関数に渡す場合に便利です。
 例:「A→1」「B→2」「C→3」…「Z→26「AA→27

 EXCEL VBAで使用する「アルファベット→数値」変換関数を図1上側に、使用例を図1下側に示します。
 図1下側「Sub test()」内の行にカーソルを合わせた状態でVBE「」ボタンを押すと図2入力画面が表示されます。
 図2入力画面に「A」を入力して「OK」をクリックすると、図3の様にメッセージボックスで「EXCELシートA列目の列番号は1です」と表示されます。
Function Henkan2(ByValpoleNo)
'アルファベット数値
Dim AZ(6)
AZ(1) = poleNo
 
If Len(AZ(1)) = 1 Then
    AZ(2) = InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", StrConv(AZ(1), 1))
    AZ(6) = AZ(2)
Else
    AZ(3) = InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", Left(StrConv(AZ(1), 1), 1)) * 26
    AZ(4) = AZ(3) + InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", Right(StrConv(AZ(1), 1), 1))
    AZ(6) = AZ(4)
End If

    Henkan2 = AZ(6)
End Function
Sub test()
   Q = InputBox("列番号を求めたい列記号(アルファベット)を入力してください")
    MsgBox ("EXCELシート" & Q & "列の列番号は" & Henkan2(Q) & "です")
End Sub
図1:プログラムの内容

イメージ 1
図2:InputBox

イメージ 2
図3:MsgBox