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
最近のコメント