ここ数日、エクセル漬けみはらです。エクセルってすげーなーと毎日思いながら使わせていただいております。そんな中で、実にべんりだったものをひとつ紹介します。アラビア数字を漢数字に直す方法です。
住所録のようなデータを管理するときは、横書きなので大抵アラビア数字で番地などが入力されていると思います。みはらの職場でもそうです。
しかし、封筒に印刷するときなど、縦書きに直す必要がでてくるといろいろ大変なことになりますよね。そんなときに、この漢数字に直す方法を使って、改めて、エクセルってすげーなーと感心しましょう。
アラビア数字を漢数字に直す方法
関数を使って漢数字に直す
まずは、関数を使って漢数字に変換する方法です。
この関数は、かなりマニアックなものなのか、「関数の挿入」ダイアログで検索してもでてこないし、ヘルプにもでてこないので、必ず手入力しないとダメっていうちょっと厄介者です。
その関数でA1の値を漢数字に直すのが、このNUMBERSTRING関数です。
=NUMBERSTRING(A1,1)
カンマの後ろ(第2引数)が1になっていますが、1~3で次のように変換します。
【元の値:123-4】
- 1:「百二十三-四」
- 2:「壱百弐拾参-四」
- 3:「一二三-四」
となります。住所録で使うのであれば、「3」ですね。
マクロを使って漢数字に変換する
つぎはマクロを使います。
変換したいところを選択して、マクロを実行するだけです。
'選択したセル範囲の、数字だけを漢数字に変換
Sub アラビア数字を漢数字に()
On Error Resume Next
Application.ScreenUpdating = False
Dim num1, num2, num3
Dim i As Integer
Dim Rng As Range
num1 = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0")
num2 = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0")
num3 = Array("一", "二", "三", "四", "五", "六", "七", "八", "九", "〇")
For Each Rng In Selection
'数字だけ半角にする
For i = 0 To 9
Rng.Value = Replace(Rng.Value, num1(i), num2(i))
Next i
'漢数字に変換
For i = 0 To 9
Rng.Value = Replace(Rng.Value, num2(i), num3(i))
Next i
Next Rng
Application.ScreenUpdating = True
End Sub
個人的には、マクロより関数入れるほうが好きです。
だって、マクロがあると、ファイルを開くたびにセキュリティ警告が出るじゃないですか。
それがキライっていうだけです。
マクロさんにはいつもお世話になってますから:)