#223 | 半角数字を漢数字に変換する方法 | VBA | |
"123456"といった半角数字を、"一二三四五六"という漢数字に変換するサンプルプロシージャを紹介します。半角数字で保存されている住所のデータを、縦書きのレポートに印刷したりする際に使えると思います。 ここでは、汎用的に使えるFunctionプロシージャとして作成することにします。そのため、次のサンプルコードを"標準モジュール"に記述します。それによって、このNumToKanjiプロシージャは、VBAのコード内から呼び出して使うだけでなく、レポート上のテキストボックスのコントロールソースからも、「=NumToKanji([住所])」のようにして呼び出すことが可能です。 Public Function NumToKanji(strNum As String) As String
'半角数字を漢字の数字に変換する Dim strKanji As String Dim strCharacter As String Dim intPos As Integer Dim iintLoop As Integer Const cstrNum As String = "0123456789" Const cstrKanjiNum As String = "0一二三四五六七八九" '引数を1文字ずつ変換するループ For iintLoop = 1 To Len(strNum) '引数より1文字を取り出し strCharacter = Mid$(strNum, iintLoop, 1) 'その1文字が半角数字か(cstrNumに含まれるか)チェック intPos = InStr(1, cstrNum, strCharacter, vbBinaryCompare) If intPos > 0 Then '半角数字の場合は漢字に変換 strKanji = strKanji & Mid$(cstrKanjiNum, intPos, 1) Else '半角数字でなければそのまま strKanji = strKanji & strCharacter End If Next iintLoop '漢字の文字列を返り値に設定 NumToKanji = strKanji End Function このプロシージャを、イミディエイトウィンドウからいくつか呼び出した結果です。 ※このサンプルプロシージャでは、"0123456789"の10ケの半角数字以外はすべて元のまま返されます。 |
|||
|
Copyright © T'sWare All rights reserved |