エクセルの1000列目は ALL

ちょっとエクセルでマクロを作っていて、
数字をエクセルの列名に変換する関数を何気なく作った。


それだけなんだけど、
なんとなく1000列目の列名を変換したら ALL って出てくる。
A-Zまでの26進数で1000まで数えたらそうなるってだけだけど、
なんかちょっとドキッとした。

'# 列番号を列名に変換する
'# 1=A, 2=B ... 26=Z, 27=AA, 28=AB ... 256=IV ... 1000=ALL
Public Function Num2Col(ByVal n As Long) As String

    Dim buf As String
    
    Do While n > 0
        buf = Chr((n - 1) Mod 26 + 65) & buf
        n = Int((n - 1) / 26)
    Loop
    
    Num2Col = buf

End Function


'# 列名を列番号に変換する
'# A=1, B=2, ... Z=26, AA=27, AB=28 ...IV=256
Public Function Col2Num(ByVal s As String) As Long

    s = UCase(s)

    Dim n As Long, i As Integer
    For i = 1 To Len(s)
        Dim c As String * 1: c = Mid(s, i, 1)
        If "A" <= c And c <= "Z" Then
            n = n * 26 + (Asc(c) - 64)
        Else
            Exit For
        End If
    Next
    
    Col2Num = n

End Function