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

  • これを共有
Michael Brown

今回は、Excel 2019、2016、2013などのバージョンで、通貨の数字を英単語に変換する簡単で無料の方法を2つ紹介します。

マイクロソフト・エクセルは、大きなデータ配列を処理するために開発されたプログラムですが、請求書、評価書、貸借対照表などの会計記録をすばやく効果的に作成することができます。

手書きの数字に比べ、タイプされた数字は改ざんが難しい。 3000を8000にする詐欺師もいれば、「3」を「8」にすることはほとんど不可能である。

そこで必要なのは、Excelで数字を単語に変換するだけでなく(例えば123.45を「123.25」)、ドルとセント(例えば29.95ドルを「29ドル99セント」)、ポンドとペンスをGBP、ユーロとユーロセントなどを綴ることである。

Excelの最新版でも数字のスペルチェックはできませんし、それ以前のバージョンでもできません。 しかし、そんなときこそExcelの真価が発揮されます。 数式を駆使して、いつでも機能を向上させることができるのです。

の組み合わせ、VBAマクロ、またはサードパーティのアドインを使用することができます。

以下は、数字を言葉に変換する2つの方法です。

    そして、もしかしたら、ExcelでWordsをNumbersに変換する必要があるかもしれません。

    注)お探しの方は 番号からテキストへの変換 この場合、TEXT関数や、Excelで数字をテキストに変換する方法で説明されているいくつかの方法を使用することができます。

    数字を単語に変換するSpellNumber VBAマクロ

    すでに述べたように、マイクロソフトはこの作業のためのツールを追加したくなかった。 しかし、多くのユーザーが必要としているのを見て、特別なVBAマクロを作成し、ウェブサイトで公開した。 このマクロは、SpellNumberという名前が示す通りの働きをする。 私が出会った他のすべてのマクロは、マイクロソフトのコードに基づいている。

    このマクロは "spellnumber formula "として紹介されていますが、数式ではなく、マクロ関数、正確には Excel ユーザー定義関数 (UDF)です。

    スペルナンバーオプションは、ドルとセントを書き込むことができます。 異なる通貨が必要な場合は、" ドル " と " セント "にあなたのものの名前を入れてください。

    VBAに詳しくない方は、以下にコードのコピーを掲載します。 それでも解決したくない方、時間がない方は、こちらの解決策をご利用ください。

    1. 数字のスペルが必要なワークブックを開きます。
    2. Alt+F11キーを押して、Visual Basicのエディタウィンドウを開きます。
    3. 複数のブックを開いている場合は、エディタの左上にあるプロジェクトのリストで必要なワークブックがアクティブになっていることを確認します(ワークブック要素の1つが青くハイライトされています)。
    4. エディタメニューから インサート -> モジュール .
    5. YourBook - Module1という名前のウィンドウが表示されます。 下のフレーム内のコードをすべて選択し、このウィンドウに貼り付けてください。

      Option Explicit 'メイン関数 Function SpellNumber( ByVal MyNumber) Dim Dollars, Cents, Temp Dim DecimalPlace, Count ReDim Place(9) As String Place(2) = " 1000 " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " MyNumber = Trim(Str(MyNumber)) DecimalPlace = InStr(MyNumber, "." ) If DecimalPlace> 0 Then Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) &); _ "00".2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp "" Then Dollars = Temp & Place(Count) & Dollars If Len(MyNumber)> 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Dollars Case "" Dollars = "No Dollars" Case "One" Dollars = "One" All right (MyNumber)Dollar" Case Else Dollars = Dollars & " Dollars" End Select Case Cents Case "" Cents = " and No Cents" Case "One" Cents = " and One Cent" Case Else Cents = " and " & Cents & " Cents" End Select SpellNumber = Dollars &; Cents End Function GetHundreds( ByVal MyNumber) Dim Result As String If Val(MyNumber) = 0 Then Exit Function MyNumber = Right( "000" & MyNumber.MyNumber) SetSet( MyNumber &s = Dollar&" &; ) SetSet( SetCent = "", " "", "ドル" ) SetCent (") SetCent ) Dim Result As String For Val(MyNumber) = 0 Then Exit Function SetNumber For Gal("000" & "ドル" )3) ' 百の位を変換する。 If Mid(MyNumber, 1, 1) "0" Then Result = GetDigit(Mid(MyNumber, 1, 1)) & " 百 " End If ' 十と一を変換する。 If Mid(MyNumber, 2, 1) "0" Then Result = 結果 & GetTens(Mid(MyNumber, 2)) Else Result = 結果 & GetDigit(Mid(MyNumber, 3)) End If GetHundreds = 結果 End 関数 Function GetTens(TensText) Dim Result As String Result = ""' 仮関数の値をNullにする。 If Val(Left(TensText, 1)) = 1 Then ' 値が10〜19の場合... Select Case Val(TensText) Case 10: 結果 = "Ten" Case 11: 結果 = "Eleven" Case 12: 結果 = "Twelve" Case 13: 結果 = "Thirteen" Case 14: 結果 = "Fourteen" Case 15: 結果 = "Fifteen" Case 16: 結果 = "Sixteen" Case 17: 結果 = "Seventeen" Case 18: 結果 = "Eighteen" Case 19: 結果 = ..."19" Case Else End Select Else ' 値が20〜99の場合... Select Case Val(Left(TensText, 1)) Case 2: 結果 = "20 " Case 3: 結果 = "30 " Case 4: 結果 = "40 " Case 5: 結果 = "50 " Case 6: 結果 = "60 " Case 7: 結果 = "70 " Case 8: 結果 = "80 " Case 9: 結果 = "90 " Case Else End Select 結果 = 結果 & GetDigit _ (Right(TensText, 1) ) ' 取得するものEnd If GetTens = Result End Function Function GetDigit(Digit) Select Case Val(Digit) 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

    6. Ctrl+Sを押して、更新したワークブックを保存します。

      ワークブックを再保存する必要があります。 マクロを使用してワークブックを保存しようとすると、""メッセージが表示されます。 以下の機能は、マクロなしワークブックに保存できません。 "

      新しいダイアログが表示されたら、"名前を付けて保存 "を選びます。 フィールドの" タイプとして保存 " オプションを選ぶ " エクセルマクロ対応ワークブック ".

    ワークシートでSpellNumberマクロを使用する

    これで、関数 呪文番号 を入力します。 =スペルナンバー(A2) を、数字が書かれているセルに入力します。 ここでは、A2が数字または金額が書かれているセルのアドレスです。

    ここで、その結果をご覧ください。

    ほらね

    SpellNumber関数を他のセルに素早くコピーすることができます。

    1つのセルだけでなく、表全体を変換する必要がある場合は、マウスカーソルを計算式のあるセルの右下隅に置き、小さな黒い十字に変わるまで待ちます。

    左クリックしたまま列をまたいでドラッグすると、数式が入力されます。 ボタンを離すと結果が表示されます。

    注意:他のセルへのリンクを持つSpellNumberを使用した場合、ソースセルの数字が変更されるたびに、書き込まれた合計が更新されることに留意してください。

    また、例えば関数に直接数値を入力することもできます。 =スペルナンバー(29.95) (29.95 - クオーテーションマークとドル記号を除く)。

    Excelでマクロを使って数字を綴ることのデメリット

    まず、VBAの知識がないと、コードを変更することができません。 また、変更するワークブックごとにコードを貼り付ける必要があります。 そうでない場合は、マクロを含むテンプレートファイルを作成し、このファイルを起動時に読み込むようにExcelを設定することが必要です。

    マクロを使用する主な欠点は、ワークブックを他の人に送る場合、マクロがワークブックに組み込まれていない限り、その人はテキストを見ることができません。 また、組み込まれていても、ワークブックにマクロがあるという警告が表示されます。

    特別なアドインを使用して、数字を単語に綴る

    VBAを学んだり、回避策を考えたりする時間がないExcelユーザーのために、いくつかの一般的な通貨の金額と単語の変換をすばやく実行できる特別なツールを作りました。 当社のUltimate Suite for Excelの最新リリースに含まれているSpell Numberアドインをご紹介します。

    すぐに使えるだけでなく、金額をテキストに変換する際にも実に柔軟に対応できるツールです。

    • 通貨は、USD、EUR、GBP、BIT、AUDから1つ選択できます。
    • 分数部分をセント、ペニー、ビットセントで表記する。
    • 結果のテキストは、小文字、大文字、タイトルケース、センテンスケースのいずれかを選択します。
    • 小数点以下の部分をいろいろな方法で綴る。
    • ゼロセントを含む、または省略する。

    このアドインは、Excel 365、Excel 2029、Excel 2016、Excel 2013、Excel 2010を含むすべての最新バージョンに対応しています。 上記リンク先の製品ホームページで、他の機能もお気軽にご覧ください。

    そして、このナンバースペル・ユーティリティを実際に見てみましょう。

    1. 結果を表示する空のセルを選択します。
    2. について エイブルビット タブで ユーティリティ グループをクリックします。 呪文番号 .
    3. での 流出番号 のダイアログウィンドウが表示されたら、次のことを設定します。
      • については 番号を選択してください ボックスで、テキストとして書き出したい金額を含むセルを選びます。
      • 希望する項目を指定する 実際に , レターケース というやり方があります。 10進数部 の数字はスペルである必要があります。
      • ゼロセントを含めるか否かを定義する。
      • 結果を値として挿入するか、数式として挿入するかを選択します。
    4. ダイアログウィンドウの下部にある プレビュー をクリックします。 呪文 .そうでなければ、別の設定を試してください。

    下のスクリーンショットは、デフォルトの選択肢とB2のスペルナンバーを示しています。 フォーミュラバーに数式(正確にはユーザー定義関数)があることに注目してください。

    そして、これは他の通貨がどのように綴られるかを示す簡単なデモンストレーションです。

    ヒントと注意点

    • なぜなら 呪文番号 アドインは、請求書やその他の財務文書のような実際のユースケースを扱うように設計されているため、変換できるのは 一倍 を一度に表示します。
    • を綴ること。 数列 で、最初のセルに数式を挿入し、その数式を下にコピーします。
    • 将来、ソースデータが変更される可能性がある場合は、以下のようにするのがベストです。 結果を式として挿入する そのため、元の番号が変わると自動的に更新されます。
    • 選ぶとき 式としての結果 オプション、カスタム ユーザ定義関数 (Ultimate Suiteをインストールしていない人とワークブックを共有する場合は、数式を値に置き換えてから共有することを忘れないでください。

    逆変換-英単語を数字に変換

    正直なところ、なぜ必要なのか想像がつきませんが、一応... :)

    ExcelのMVPであるJerry Lathamは、このようなExcelのユーザー定義関数(UDF)を作成したようです。 ワーズ・トゥ・デジッツ 英単語を数字に変換してくれます。

    JerryのWordsToDigitsワークブックをダウンロードして、UDFのコードを見ることができます。 また、この関数の使い方の例も掲載されています。

    この機能がどのように動作するかは、シート上で確認できます " サンプルエントリー をクリックすると、自分の例を入力することもできます。 なお、WordsToDigitsを文書に使用する場合、単語で入力された分数は認識できないなど、制限があります。 詳細は、"WordsToDigits "を参照してください。 インフォメーション " シートです。

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。