列のアルファベット指定と番号指定の変換
Excelの列はA,B,C,・・・,AA,AB,・・・IVと言う風になっています。
また、RangeプロパティではRange("A2")という感じに『アルファベット指定列と行』でセルを指定します。
一方、cellsプロパティではCells(2, 1)という感じに『行と番号指定列』でセルを指定します。
ということで、列のアルファベット指定と番号指定の変換が結構必要な場合がありますね。
今回、アルファベット指定列と番号指定列の変換と逆変換の関数を作って見ました。
◆ アルファベット指定列から番号指定に変換するalphabet2number関数
Function alphabet2number(strAlphabetCol As String) As Integer alphabet2number = Range(strAlphabetCol & 1).Column End Function
◆ 番号指定からアルファベット指定列に変換するnumber2alphabet関数
Function number2alphabet(intNumberCol As Integer) As String Dim intAlpha1 As Integer Dim intAlpha2 As Integer intAlpha1 = Int((intNumberCol - 1) / 26) intAlpha2 = intNumberCol - (intAlpha1 * 26) If intAlpha1 > 0 Then number2alphabet = Chr(intAlpha1 + 64) End If If intAlpha2 > 0 Then number2alphabet = number2alphabet & Chr(intAlpha2 + 64) End If End Function
◆ テストサンプル
Dim intNumberCol As Integer Dim strAlphabetCol As String intNumberCol = alphabet2number("AB") strAlphabetCol = number2alphabet(intNumberCol)