|
▼Access_Face さん:
>文字列 変換値:fncTemp([文字列],8)
>ABCDEFGH 24309841 ・・・・>36進数ABCDEFGHからの10進数結果ではない
えーと、コードをちゃんと読まれましたか?
第二引数の BaseNum (基数) に 8 を渡しているので、8 進数
からの変換になっているだけのように見えますが。
リンク先にも書いてあったように、エラー処理をしていないので
この場合は何が返ってきても不思議ではありません。
エラー処理は利用する側で実装する必要があります。
また、この関数を使って「36進数ABCDEFGHからの10進数」を
求めようとするなら、おそらく Long 型の範囲を超えますから、
オーバーフローを起こすと思いますよ。
どのみち、そのままは使えないでしょう。
あと、まさかとは思いますが、
>Let strList = "0123456789ABCDEFG...Z"
これは実コードのほうでは修正されてますよね??
念押しするほうが失礼かもしれないので書きにくいですが、
リンク先で上のように書いてあるのは、Z まで書くのが(おそらく)
面倒だったから「...」と省略しただけで、実際のコードでは(リンク
先のスレ先頭の質問文を見れば分かるとおり)省略なしできちんと
アルファベットを網羅しないと、まともな結果は返ってきません。
それは承知の上で、掲示板上だけ修正前のコードを貼ったという
ことでしたら(そうする意味はよく分かりませんが…)、流して
ください。
もしくは、処理速度を求めないなら、下の関数(手抜きですが)を
使ってください。
Function Base36ToDec(ByRef sNum As String)
With CreateObject("ScriptControl")
.Language = "JScript"
Base36ToDec = .Eval("parseInt('" & sNum & "',36)")
End With
End Sub
それでは。
|
|