Excelの列(Aなど)とCellsなどの列番号(1)に変換
おためしでソースなど公開してみることにしました。
アクセスアップを目指します。
引数が”AA”だったら27を返却、またはその逆をしたいなーと思い
軽くググってもでてこなかったので自分で実装しました。
よろしければどうぞ。
テストしたけど、バグってたらソーリーソーリー ひげソーリー。
Private Function getAto1(ByVal strCol As String) As Long
Dim lngCnt As Long
Dim strBuf As String
Dim lngRet As Long
Dim i As Long
strCol = UCase(strCol)
lngCnt = Len(strCol)
lngRet = 0
For i = 0 To lngCnt - 1
strBuf = Mid$(strCol, lngCnt - i, 1)
lngRet = lngRet + (Asc(strBuf) - Asc("A") + 1) * (26 ^ i)
Next
getAto1 = lngRet
End Function
Private Function get1toA(ByVal lngCol As Long) As String
Dim strRet As String
Dim lngAns As Long
'1~26の列番号を0~25に変換
lngCol = lngCol - 1
Do Until lngCol < 0
lngAns = (lngCol Mod 26)
strRet = Chr$(Asc("A") + lngAns) & strRet
'右シフト
lngCol = Fix(lngCol / 26) - 1
Loop
get1toA = strRet
End Function









最近のコメント