数字→金額表示用漢数字変換を行うユーザー定義関数 |
対象バージョン : 97, 2000, 2002, 2003, 2007
最終更新日 : 2007/02/12
(オリジナル作成日 : 1998/02/01)
概 要
半角数字を"十百千万億兆"の単位を含めた金額表示用漢数字へ変換するユーザー定義関数です。
【例】
1000500 → 百万五百
12345678 → 一千二百三十四万五千六百七十八
構 文
Num2Knj(Number)
解 説
Num2Knj 関数の戻り値は文字列型 (String)です。
Num2Knj 関数では次の引数を使用します。
引 数 | 内 容 |
---|---|
Number | 15桁までの数字、あるいは数値を返す関数を指定します。 |
引数に数値以外のものがが与えられた場合、この関数は長さ 0 の文字列を返します。
ユーザー定義関数
Public Function Num2Knj(argNumber) As String Dim varUnit1 As Variant Dim varUnit2 As Variant Dim iUnit1 As Integer Dim iUnit2 As Integer Dim iPos As Integer Dim stNumber As String * 16 Dim stKnj As String Dim stDigit As String Dim stMoji As String If Not IsNumeric(argNumber) Then Exit Function If argNumber = 0 Then Num2Knj = "〇" Exit Function End If On Error GoTo Num2Knj_Error: varUnit1 = Array("", "十", "百", "千") varUnit2 = Array("", "万", "億", "兆") stNumber = Format(argNumber, "@@@@@@@@@@@@@@@@") iPos = 16 iUnit1 = 0 iUnit2 = 0 stDigit = Mid(stNumber, iPos, 1) Do While stDigit <> " " If stDigit <> "0" Then If stDigit = "1" Then If iUnit1 = 0 Or iUnit1 = 3 Then '★ 一(0)と千(3)の単位に "一" を付ける stMoji = "一" Else stMoji = "" End If Else stMoji = Mid("二三四五六七八九", CInt(stDigit) - 1, 1) End If stKnj = stMoji & varUnit1(iUnit1) & varUnit2(iUnit2) & stKnj varUnit2(iUnit2) = "" End If iPos = iPos - 1 stDigit = Mid(stNumber, iPos, 1) iUnit1 = iUnit1 + 1 If iUnit1 = 4 Then iUnit2 = iUnit2 + 1 iUnit1 = 0 End If Loop Num2Knj = stKnj Exit Function Num2Knj_Error: Num2Knj = "" Exit Function End Function
補 足
改定履歴