列名から列Noを取得して返すFunctionを作ってみた
「列Noから列名を取得して返すFunctionを作ってみた」に続いて、逆バージョンも作ってみた。
MsgBox getColumnNoFromColumnName("A")
とすると、「1」と表示される。
引数として"Z"を与えれば「26」が返ってくるし、"AA"を与えれば「27」が返ってくる。
ちなみにこのFunctionを作ろうと思ったきっかけは、
- 管理画面では「列名」を指定したい
- 管理画面で指定した列の○列右を指定したい
という事をしたかったから。
そういうやり方が正しいのかどうか特に自信がある訳ではなく、もっと別なやり方もあるような気もするのだが、まぁ成長の過程の記録として記しておくことにする。
誰かが使うかもしれないし。
'列名から列Noを取得して返す Public Function getColumnNoFromColumnName(columnName As String) As Long Dim i As Integer Dim tmp As Long For i = 1 To Len(columnName) tmp = tmp + ((Asc(Mid(columnName, i, 1)) - 64) * (26 ^ (Len(columnName) - i))) Next i getColumnNoFromColumnName = tmp End Function