数値を漢数字に変換するプログラム
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")