Excelのユーザー定義関数で文字混じりの数字を漢数字に変換する方法

Excelのユーザー定義関数で文字混じりの数字を漢数字に変換する方法

※99,999までです。

Excelを使って日常業務をこなしていると、時々数字を漢数字に変換したいという状況が生じることがあります。例えば、「11月」を「十一月」や、「8丁目」を「八丁目」に変換したい場合などです。この記事では、Excelのユーザー定義関数を使って、セルの値の数字部分を漢数字に変換する方法を紹介します。

ユーザー定義関数の作成方法

Excelのユーザー定義関数を作成するには、以下の手順に従ってください。

  1. Excelを開いて、[Alt] + [F11] キーを押してVBAエディタを開きます。
  2. 左上の[挿入]メニューから[標準モジュール]を選択して、新しいモジュールを追加します。
  3. 新しいモジュールのコードウィンドウに、ユーザー定義関数のコードを貼り付けます。
  4. VBAエディタを閉じてワークシートへ戻ります。

以下に示すのは、数字部分を漢数字に変換するユーザー定義関数のコードです。コードウィンドウに貼り付けて使用してください。

Function ConvertToKanjiNumProper(target As String) As String
    Dim i As Long
    Dim char As String
    Dim result As String
    Dim number As String
    
    For i = 1 To Len(target)
        char = Mid(target, i, 1)
        If IsNumeric(char) Then
            number = number & char
        Else
            If Len(number) > 0 Then
                result = result & ConvertNumberToKanji(CLng(number))
                number = ""
            End If
            result = result & char
        End If
    Next i
    
    If Len(number) > 0 Then
        result = result & ConvertNumberToKanji(CLng(number))
    End If
    
    ConvertToKanjiNumProper = result
End Function

Function ConvertNumberToKanji(num As Long) As String
    Dim kanjiDigits() As String
    Dim kanjiUnits() As String
    Dim numberStr As String
    Dim i As Long
    Dim temp As String
    
    kanjiDigits = Split("〇 一 二 三 四 五 六 七 八 九", " ")
    kanjiUnits = Split(" 十 百 千 万 億 兆", " ")
    
    numberStr = Trim(Str(num))
    
    If num = 0 Then
        ConvertNumberToKanji = kanjiDigits(0)
        Exit Function
    End If
    
    For i = 1 To Len(numberStr)
        If Val(Mid(numberStr, i, 1)) <> 0 Then
            temp = temp & kanjiDigits(Val(Mid(numberStr, i, 1)))
            If i < Len(numberStr) Then
                temp = temp & kanjiUnits(Len(numberStr) - i)
            End If
        End If
    Next i
    
    ConvertNumberToKanji = temp
End Function

上記のユーザー定義関数を使うと、例えば「11月」が「十一月」、「8丁目」が「八丁目」に正しく変換されます。

※99,999までです。

関数の使い方

関数を使ってセルの値を変換する方法を以下に説明します。

  1. Excelのシートで、変換したい値が入力されたセルを選択します。
  2. セルに以下のように関数を入力します。=ConvertToKanjiNumProper(A1) ただし、A1は変換対象のセルを示しています。
  3. もしくは「関数の挿入」ボタンから「関数の分類:ユーザー定義」を選び「ConvertToKanjiNumProper」を選択します。引数にはA1を指定します。
  4. 確定すると、変換結果が表示されます。

この関数を使って、あらゆる数値を含むセルの値を漢数字に置き換えることができます。

まとめ

この記事では、Excelのユーザー定義関数を使って、セルの値の数字部分を漢数字に変換する方法を紹介しました。この便利な関数を使って、日常業務をより効率化しましょう。

コメント