半角数字を漢数字に変換する関数です。大字(零壱弐参四五六七八九拾)の漢字と値の漢数字(十百千等)を使用した漢数字に変換します。半角数字以外の場合は空白を返します。
VBEの標準モジュールに下のコードを登録して「Excelマクロ有効フォーム」で保存してください。
関数の登録方法は⇒♯000 ユーザー定義関数を登録する方法
登録されたら、シート上からユーザー関数「 NumAKan3」が使用できます。
使い方は
ワークシート上で = NumAKan3 (半角数字)の関数として使用できます。
【例】
NumAKan3 (11) → 拾壱
NumAKan3 (123456789) → 壱百弐拾参億四千五百六拾七万八千壱百七拾九
Function NumAKan3(S)
’半角数字を漢数字(大字1)変換にする関数
On Error GoTo EXITFUN
Dim KanNum1
Dim KanNum2
Dim KanNum3
Dim KanNum4
Dim i
Dim Num1
Dim Num2
Dim NumU(1 To 4)
KanNum1 = Split(“,壱,弐,参,四,五,六,七,八,九”, “,”)
KanNum2 = Split(“零,壱,弐,参,四,五,六,七,八,九”, “,”)
KanNum3 = Split(“拾,百,千,万,億,兆,京,垓”, “,”)
Num1 = S
If S = 0 Then
NumAKan3 = “零”
Exit Function
End If
For i = 3 To 7
If Num1 = 0 Then
Exit For
End If
Num2 = Num1- Fix(Num1 / 10000) * 10000
NumU(1) = KanNum1(Num2 Mod 10)
If Int((Num2 Mod 100) / 10) = 0 Then
NumU(2) = “”
Else
NumU(2) = KanNum1(Int((Num2 Mod 100) / 10)) & KanNum3(0)
End If
If Int((Num2 Mod 1000) / 100) = 0 Then
NumU(3) = “”
Else
NumU(3) = KanNum1(Int((Num2 Mod 1000) / 100)) & KanNum3(1)
End If
If Int((Num2 Mod 10000) / 1000) = 0 Then
NumU(4) = “”
Else
NumU(4) = KanNum1(Int((Num2 Mod 10000) / 1000)) & KanNum3(2)
End If
Num1 = Int(Num1 / 10000)
If i = 3 Then
KanNum4 = (NumU(4) & NumU(3) & NumU(2) & NumU(1))
Else
KanNum4 = (NumU(4) & NumU(3) & NumU(2) & NumU(1)) & KanNum3(i- 1) & KanNum4
End If
Next
NumAKan3 = KanNum4
Exit Function
EXITFUN:
NumAKan3 = “”
End Function
ここで紹介したコード使用による損害に対しては一切責任は負えません。