#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ケの半角数字以外はすべて元のまま返されます。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved