NOBのArduino日記!

NOBのArduino日記!

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

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

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

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

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

イメージ 1
図2:inputbox

イメージ 2
図3:msgbox