F011 数字を漢数字(大字1)に変換する関数

2019-05-17
EXCEL自作関数

  半角数字を漢数字に変換する関数です。大字(零壱弐参四五六七八九拾)の漢字と値の漢数字(十百千等)を使用した漢数字に変換します。半角数字以外の場合は空白を返します。

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


ここで紹介したコード使用による損害に対しては一切責任は負えません。