半角数字を漢数字に変換する関数です。〇~九の漢字と値の漢数字(十百千等)を使用した漢数字に変換します。半角数字以外の場合は空白を返します。
VBEの標準モジュールに下のコードを登録して「Excelマクロ有効フォーム」で保存してください。
関数の登録方法は⇒♯000 ユーザー定義関数を登録する方法
登録されたら、シート上からユーザー関数「 NumAKan2 」が使用できます。
使い方は
ワークシート上で = NumAKan2 (半角数字)の関数として使用できます。
【例】
NumAKan2 (11) → 十一
NumAKan2 (123456789) → 一億二千三百四十五万六千七百八十九
Function NumAKan2(S)
’半角数字を漢数字にする関数(位の漢数字を含む場合)
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
NumAKan2 = “〇”
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) = “”
ElseIf Int((Num2 Mod 100) / 10) = 1 Then
NumU (2) = KanNum3(0)
Else
NumU (2) = KanNum1(Int((Num2 Mod 100) / 10)) & KanNum3(0)
End If
If Int((Num2 Mod 1000) / 100) = 0 Then
NumU (3) = “”
ElseIf Int((Num2 Mod 1000) / 100) = 1 Then
NumU (3) = KanNum3(1)
Else
NumU (3) = KanNum1(Int((Num2 Mod 1000) / 100)) & KanNum3(1)
End If
If Int((Num2 Mod 10000) / 1000) = 0 Then
NumU (4) = “”
ElseIf Int((Num2 Mod 10000) / 1000) = 1 Then
NumU (4) = KanNum3(2)
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
NumAKan2 = KanNum4
Exit Function
EXITFUN:
NumAKan2 = “”
End Function
ここで紹介したコード使用による損害に対しては一切責任は負えません。