【VBScript】数値を漢数字に変換する

数値を漢数字に変換するプログラム

Function KanSuuK(num)
    Kingaku=0 '0=漢数字 1=金額漢数字
    If Kingaku=0 Then
        saKeta=Array("","万","億","兆","京","垓","𥝱","穣","溝","澗","正","載","極","恒河沙","阿僧祇","那由他","不可思議","無量大数")
    Else
        saKeta=Array("","萬","億","兆","京","垓","𥝱","穣","溝","澗","正","載","極","恒河沙","阿僧祇","那由他","不可思議","無量大数")
    End If
    If IsNumeric(num) Then sNum=CStr(num)
    j=CInt(Len(sNum) Mod 4)
    If j>0 Then sW=KanSuuKK(Mid(sNum,1,j)) & saKeta(CInt(Fix(Len(sNum)/4)))
    For i=0 To CInt(Fix(Len(sNum)/4))
        iSuu=Mid(sNum,j+1+i*4,4)
        k=CInt(Fix(Len(sNum)/4))-i-1
        If K<0 Then k=0
        sW=sW & KanSuuKK(iSuu) & saKeta(k)
    Next
    KanSuuK=sW
End Function

Function KanSuuKK(num)
    Kingaku=0   '0=漢数字 1=金額漢数字(大字)
    Sangi=0     '0=通常 1=20=廿/30=卅/40=卌
    If Kingaku=0 Then
        saNum=Array("","一","二","三","四","五","六","七","八","九") '〇/零は対象外
        saKeta=Array("","","十","百","千")
    Else
        saNum=Array("","壱","弐","参","肆","伍","陸","漆","捌","玖")
        saKeta=Array("","","拾","陌","阡")
    End If
    If IsNumeric(num) Then sNum=CStr(num)
    If sNum="0" Then
        If Kingaku=0 Then
            KanSuuKK="〇"
            Exit Function
        Else
            KanSuuKK="零"
            Exit Function
        End If
    End If
    For i=Len(sNum) To 1 Step -1
        sW=saNum(CInt(Mid(sNum,Len(sNum)-i+1,1)))
        sSk=""
        If sW<>"" Then sSK=saKeta(i)
        If sW=saNum(2) And sSK=saKeta(2) And Sangi=1 Then
            sSW=sSW & "廿" '卄
        ElseIf sW=saNum(3) And sSk=saKeta(2) And Sangi=1 Then
            sSW=sSW & "卅" '丗
        '↓ANSI(Shift-Jis)不可
        'ElseIf sW=saNum(4) And sSk=saKeta(2) And Sangi=1 Then
        '    sSW=sSW & "卌"
        Else
            If Kingaku=0 And sW=saNum(1) Then
                sSW=sSW & sSK
                If i=1 Then sSW=sSW & sW
            Else
                If saNum(1)<>sW Then
                    If saketa(i)<>"" Then
                        sSW=sSW & sW & sSK
                    Else
                        sSW=sSW & sW
                    End If
                Else
                    sSW=sSW & sW & sSk
                End If
            End If
        End If
    Next
    KanSuuKK=sSW
End Function

WScript.Echo KanSuuK("123456789")