空プログラム工房エクセル関数サンプル |
01 | chg26to10 | 英字列名を数値列名に変換する(26進数10進変換) |
2009/12/02 |
Function chg26to10(prmRetuA As String) As Long '英字列名を数値列名に変換する(26進数10進変換) '=chg26to10("AB") If IsNumeric(prmRetuA) Then '数値の場合そのまま戻す chg26to10 = prmRetuA Exit Function End If Dim lonLen As Long lonLen = Len(prmRetuA) If lonLen <= 0 Then '空白は0 chg26to10 = 0 Exit Function End If chg26to10 = 0 Dim strStrU As String strStrU = UCase(prmRetuA) 'すべて大文字に変換 '1桁ずつ処理 Dim strC As String Dim lonI As Long Dim lonW As Long Dim lonKeta As Long lonKeta = 1 '1桁の桁値 For lonI = lonLen To 1 Step -1 strC = Mid(strStrU, lonI, 1) '1桁取得 If strC = " " Then 'スペースがある場合そこで終わり Exit For End If '文字値算出 lonW = Asc(strC) - 64 'A -> 1 '合計 chg26to10 = chg26to10 + lonKeta * lonW '次の桁値算出 lonKeta = lonKeta * 26 Next lonI End Function |