メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelで数字を単語に変換する - 包括的なガイド

Author Xiaoyang Last modified

財務報告書、法的文書、請求書、または小切手のために数字を書き言葉に変換する必要がよくあります。Excelにはこの機能があらかじめ備わっていませんが、Microsoft 365の組み込み関数からVBAユーザー定義関数、強力なサードパーティのアドインまで、信頼できる複数の方法でそれを実現できます。この包括的なガイドでは、各方法を紹介し、その利点と制限を強調し、特定のニーズに最適なアプローチを選択するのに役立てます。

A screenshot showing converting numbers to words in Excel

Excelで数字を単語に変換する方法

このセクションでは、Excelで通貨の数字を単語に変換するための3つの効果的な方法をご紹介します。お使いのExcelのバージョンや用途に最も適したものを選んでください。


方法1:新しい組み込み関数を使用する(Microsoft 365のみ)

Microsoft 365版のExcelを使用している場合、新しいTRANSLATE関数を利用して、クリエイティブな数式の組み合わせで通貨の数字を簡単に単語に変換することができます。

下のスクリーンショットに示すように、範囲A2:A5にある通貨の数字を単語に変換するために、次の数式を適用して完了させることができます。

  1. 空白のセル(例:B2)を選択し、以下の数式を入力してください。
    =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(B9),"th","en")),"baht","dollars"),"satang","cents"))
  2. 「Enter」を押して、「フィルハンドル」をドラッグして他の行にも適用します。
    A screenshot showing how to use the new function to convert numbers to words

数式の仕組み:

  • BAHTTEXT: 数字をタイバーツ形式のテキスト(例:「หนึ่งบาทถ้วน」)に変換します。
  • TRANSLATE(...,"th","en"): テキストを別の言語に翻訳します(Microsoft 365が必要)。この場合は、タイ語を英語に翻訳します。
  • LOWER(): 一貫性のために文字列全体を小文字に変換します。
  • SUBSTITUTE(): 「バーツ」や「サタン」などの通貨単語を希望の用語に置き換えます。
  • PROPER(): 適切な書式設定のために各単語の最初の文字を大文字にします。

他の通貨への対応:

上記の数式は米ドルを出力します。主要通貨単位と補助通貨単位を以下のように置き換えることで、他の通貨にカスタマイズできます:

  • 「ドル」を目標通貨の主要単位に置き換えます。たとえば、英国ポンドの場合は「ポンド」にします。
  • 「セント」を補助単位に置き換えます。たとえば、英国ポンドの場合は「ペンス」にします。

次の表は、互換性のある通貨と、使用可能な対応する数式をリストしています:

通貨主要単位の置換補助単位の置換例の数式(値がA2にあると仮定)
USD ドル セント =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","dollars"),"satang","cents"))
GBP ポンド ペンス =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","pounds"),"satang","pence"))
EUR ユーロ セント =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","euros"),"satang","cents"))
MYR リンギット セン =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","ringgit"),"satang","sen"))

この方法の制限事項:

  • TRANSLATE() 関数が原因で、Microsoft 365版のExcelでのみ動作します。
  • 出力はBAHTTEXT() のフォーマットの正確さに大きく依存します。
  • この方法は、タイバーツのように主要単位と補助単位(例えば、ドルとセント)を持つ通貨に適しています。同様の通貨構造を持たない通貨には推奨されません。

方法2:VBAユーザー定義関数を使用する

このセクションでは、VBAベースのユーザー定義関数 (UDF) を使用して数値を英語の通貨単語に変換する方法を学びます。特に、デフォルトでは米ドル (USD) に対応しています。

ステップ1:VBAコードを挿入する

  1. この機能を使用したいワークシートを開きます。
  2. 「Alt」 + 「F11」を押して「Microsoft Visual Basic for Applications」ウィンドウを開きます。
  3. エディタで「挿入」>「モジュール」をクリックし、次のVBAコードを貼り付けます。
    Function SpellNumberToEnglish(ByVal pNumber)
    'Update by Extendoffice
    Dim Dollars, Cents
    arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
    pNumber = Trim(Str(pNumber))
    xDecimal = InStr(pNumber, ".")
    If xDecimal > 0 Then
        Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2))
        pNumber = Trim(Left(pNumber, xDecimal - 1))
    End If
    xIndex = 1
    Do While pNumber <> ""
        xHundred = ""
        xValue = Right(pNumber, 3)
        If Val(xValue) <> 0 Then
            xValue = Right("000" & xValue, 3)
            If Mid(xValue, 1, 1) <> "0" Then
                xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred "
            End If
            If Mid(xValue, 2, 1) <> "0" Then
                xHundred = xHundred & GetTens(Mid(xValue, 2))
            Else
                xHundred = xHundred & GetDigit(Mid(xValue, 3))
            End If
        End If
        If xHundred <> "" Then
            Dollars = xHundred & arr(xIndex) & Dollars
        End If
        If Len(pNumber) > 3 Then
            pNumber = Left(pNumber, Len(pNumber) - 3)
        Else
            pNumber = ""
        End If
        xIndex = xIndex + 1
    Loop
    Select Case Dollars
        Case ""
            Dollars = "No Dollars"
        Case "One"
            Dollars = "One Dollar"
        Case Else
            Dollars = Dollars & " Dollars"
    End Select
    Select Case Cents
        Case ""
            Cents = " and No Cents"
        Case "One"
            Cents = " and One Cent"
        Case Else
            Cents = " and " & Cents & " Cents"
    End Select
    SpellNumberToEnglish = Dollars & Cents
    End Function
    Function GetTens(pTens)
    Dim Result As String
    Result = ""
    If Val(Left(pTens, 1)) = 1 Then
        Select Case Val(pTens)
            Case 10: Result = "Ten"
            Case 11: Result = "Eleven"
            Case 12: Result = "Twelve"
            Case 13: Result = "Thirteen"
            Case 14: Result = "Fourteen"
            Case 15: Result = "Fifteen"
            Case 16: Result = "Sixteen"
            Case 17: Result = "Seventeen"
            Case 18: Result = "Eighteen"
            Case 19: Result = "Nineteen"
            Case Else
        End Select
    Else
    Select Case Val(Left(pTens, 1))
        Case 2: Result = "Twenty "
        Case 3: Result = "Thirty "
        Case 4: Result = "Forty "
        Case 5: Result = "Fifty "
        Case 6: Result = "Sixty "
        Case 7: Result = "Seventy "
        Case 8: Result = "Eighty "
        Case 9: Result = "Ninety "
        Case Else
    End Select
    Result = Result & GetDigit(Right(pTens, 1))
    End If
    GetTens = Result
    End Function
    Function GetDigit(pDigit)
    Select Case Val(pDigit)
        Case 1: GetDigit = "One"
        Case 2: GetDigit = "Two"
        Case 3: GetDigit = "Three"
        Case 4: GetDigit = "Four"
        Case 5: GetDigit = "Five"
        Case 6: GetDigit = "Six"
        Case 7: GetDigit = "Seven"
        Case 8: GetDigit = "Eight"
        Case 9: GetDigit = "Nine"
        Case Else: GetDigit = ""
    End Select
    End Function
    A screenshot showing the code editor
  4. 「Alt」 + 「Q」を押してワークシートに戻ります。

ステップ2:関数を適用する

  1. セルに以下の数式を入力し、「Enter」を押します。
    =SpellNumberToEnglish(A2)
  2. そして、フィルハンドルをドラッグして他の行にも適用します。これで数字が次のように単語に変換されます:
    A screenshot showing the user-defined function and the results

他の通貨に対応させる:

この関数は「Dollar(s)」と「Cent(s)」に出力され、これらはUSD専用にハードコーディングされています。他の通貨、例えば「英国ポンド」に変換したい場合は、以下のコード行の主要単位と補助単位を手動で変更する必要があります。

A screenshot showing how to change the codes to adapt for other currencies

マクロ有効ファイルとしてブックを保存する

デフォルトでは、VBA関数はブックがマクロ有効ブックとして保存されない限り保持されません:

  1. 「Ctrl」 + 「S」を押して保存します。
  2. ポップアップメッセージの「戻る」ボタンを選択してください。
    注:ポップアップに「はい」「いいえ」「ヘルプ」のみ表示される場合、「いいえ」をクリックしてください。
    A screenshot showing how to change the codes to adapt for other currencies
  3. 「名前を付けて保存」ウィンドウで。
    1. 保存先を選択します。
    2. 「保存形式」のドロップダウンリストから「Excelマクロ有効ブック (*.xlsm)」を選択します。
    3. 「保存」をクリックします。
      A screenshot showing how to change the codes to adapt for other currencies

SpellNumberToEnglish VBA関数の制限事項

複数言語には対応していない
  • この関数は結果を英語でのみ生成します。
  • 他の言語(フランス語、ドイツ語など)には対応しておらず、また、通貨単位が数字の前に来るような通貨構造(インド英語の「ルピー百」など)も扱えません。
標準のExcelファイルには保存されない
  • マクロ有効ブック (.xlsm) として保存しない場合、Excelを閉じると関数が失われます。
  • 通常の.xlsxファイルとして保存すると、すべてのVBAコードが削除されます。
共有時のマクロセキュリティ警告
  • マクロ有効ファイルを他人に送ると、「セキュリティ警告 – マクロは無効にされました」というプロンプトが表示されます。
  • 一部のユーザーは潜在的なセキュリティリスクを懸念し、ファイルを使用しないことを選ぶかもしれません。
カスタマイズにはVBAの知識が必要
  • 通貨用語や書式の変更には、VBAコードを手動で編集する必要があります。
  • マクロやスクリプトに不慣れなユーザーには理想的ではありません。

方法3:Kutools for Excel を使用する(数式やVBA不要)

Kutools for Excel をインストールすると、「Numbers to Words」機能を使用して、数字を英語(通貨または単純な単語)、数十種類の他の言語や通貨(EUR、GBP、JPYなど)に変換できます。

Excelで数字を単語に変換するためのノーコードでユーザーフレンドリーかつ多機能なソリューションを探している場合、Kutools for Excel には以下のサポートが含まれている「Numbers to Words」機能があります:

  • 英語(USD、GBP、EURなど)
  • 他の数十の言語や通貨(日本円、インド・ルピー、中国元など)
  • 通貨形式または単純な単語(「123ドル」ではなく「123」)

使用手順:

  1. 変換したい数字が入っているセルを選択します。
  2. 「Kutools」>「コンテンツ」>「Numbers to Words」を選択します。
  3. 「Numbers to Currency Word」ダイアログボックスで、以下を行う必要があります:
    1. 希望する言語と通貨スタイルを選択します(例:USDの場合は英語 - 米国)
    2. 「OK」をクリックします。
      A screenshot showing the numbers to currency word dialog box

オプション:単純な英語の単語(「ドル」や「セント」なし)にする場合は「Not converted to currency」にチェックを入れます。

選択された数字は、設定に応じて適切な通貨単語に変換されます。

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手


逆操作:通貨単語を数字に変換する

次のような英語単語で書かれた通貨金額がある場合:

「123ドル45セント」

そして、それらをExcelで実際の数字(例:123.45)に変換したい場合、次のようにカスタムVBAユーザー定義関数 (UDF) を使用できます。

ステップ1:VBAエディタを開いてVBAコードを挿入する

  1. Excelブックを開きます。
  2. 「Alt」 + 「F11」を押して「Microsoft Visual Basic for Applications (VBA)」エディタを開きます。
  3. VBAエディタで「挿入」>「モジュール」をクリックします。
  4. 次のVBAコードをコピーして空白のモジュールウィンドウに貼り付けます:
    Function WordsToNumber(ByVal Txt As String) As Double
    'Updated by Extendoffice
        Dim x As Object: Set x = CreateObject("Scripting.Dictionary")
        Dim units, tens, specials
        Dim part As String, parts() As String
        Dim total As Double, partial As Double, multiplier As Double
        Dim i As Long, word As String
        
        Txt = LCase(Trim(Txt))
        Txt = Replace(Txt, ",", "")
        Txt = Replace(Txt, "-", " ")
        Txt = Replace(Txt, " and ", " ")
        Txt = Replace(Txt, "  ", " ")
        
        ' Setup basic number words
        x.Add "zero", 0: x.Add "one", 1: x.Add "two", 2: x.Add "three", 3
        x.Add "four", 4: x.Add "five", 5: x.Add "six", 6: x.Add "seven", 7
        x.Add "eight", 8: x.Add "nine", 9: x.Add "ten", 10: x.Add "eleven", 11
        x.Add "twelve", 12: x.Add "thirteen", 13: x.Add "fourteen", 14
        x.Add "fifteen", 15: x.Add "sixteen", 16: x.Add "seventeen", 17
        x.Add "eighteen", 18: x.Add "nineteen", 19: x.Add "twenty", 20
        x.Add "thirty", 30: x.Add "forty", 40: x.Add "fifty", 50
        x.Add "sixty", 60: x.Add "seventy", 70: x.Add "eighty", 80
        x.Add "ninety", 90: x.Add "hundred", 100: x.Add "thousand", 1000
        x.Add "million", 1000000: x.Add "billion", 1000000000
        
        Dim dollarPart As String, centPart As String
        Dim dollarValue As Double, centValue As Double
        
        ' Split into dollars and cents
        If InStr(Txt, "dollar") > 0 Then
            dollarPart = Trim(Split(Txt, "dollar")(0))
        End If
        If InStr(Txt, "cent") > 0 Then
            centPart = Trim(Split(Txt, "cent")(0))
            If InStr(centPart, "dollar") > 0 Then
                centPart = Trim(Split(centPart, "dollar")(1))
            End If
        End If
        
        dollarValue = ParseWordsToNumber(dollarPart, x)
        centValue = ParseWordsToNumber(centPart, x)
        
        WordsToNumber = dollarValue + centValue / 100
    End Function
    
    Private Function ParseWordsToNumber(ByVal Txt As String, x As Object) As Double
        Dim parts() As String: parts = Split(Txt, " ")
        Dim total As Double, current As Double
        Dim i As Long, val As Double
        
        For i = 0 To UBound(parts)
            If x.exists(parts(i)) Then
                val = x(parts(i))
                Select Case val
                    Case 100
                        If current = 0 Then current = 1
                        current = current * val
                    Case Is >= 1000
                        If current = 0 Then current = 1
                        total = total + current * val
                        current = 0
                    Case Else
                        current = current + val
                End Select
            End If
        Next i
        
        total = total + current
        ParseWordsToNumber = total
    End Function

ステップ2:シートで関数を適用する

  1. 「Alt」 + 「Q」を押してExcelに戻ります。
  2. 任意の空のセルに次の数式を入力し、「Enter」を押します。「フィルハンドル」をドラッグして残りの結果を得ます。
    =WordsToNumber(A2)
    A screenshot showing how to convert words to numbers

結論

数字を単語に変換したり、単語を数字に戻したりすることは、Excelにはネイティブには備わっていない機能ですが、このガイドでは、ニーズに応じて複数の実用的な解決策があることがわかりました:

  • Microsoft 365のユーザーは、現代的な組み込み関数であるTRANSLATEを利用することで、特に「主単位+副単位」構造の通貨に対して、数式を使って通貨数字を英語の単語に変換できます。
  • VBAユーザー定義関数は、数字を単語に変換したり、通貨単語を数字に戻したりする際に柔軟性が高いですが、マクロに関連するセキュリティ上の懸念があり、コーディングに精通したユーザーに最適です。
  • Kutools for Excel は、最も簡単で多言語対応し、機能豊富なオプションを提供します。数式やコーディングは必要なく、数十の通貨と言語をカバーしています。
  • 単語を数字に戻す必要がある場合、VBAソリューションがこのギャップを効果的に埋めますが、正確な結果を得るためには(例:コンマを削除するなど)クリーンアップが必要になる場合があります。

財務文書の準備、小切手印刷の自動化、またはデータプレゼンテーションの向上など、正しい方法を選ぶことで、プロフェッショナルで正確な出力を実現できます。


最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

  • Word、Excel、PowerPointでタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得