ワークシートに数値の列があり、それを英語の単語に変換する必要がある場合、その方法を知りたいと思うかもしれません。Excelにはこれを直接行う数式はありませんが、WPS AIを使って簡単なプロンプトで数字を単語に変換するなど、いくつかの代替手段があります。この記事では、Excelで数字を単語に変換する方法をご紹介します。
パート1:VBAを使用してExcelで数字を単語に変換する方法

Excelシートが数字で埋め尽くされている状況で、これらの数字が魔法のように単語に変わるのを想像してみてください。これが、Excelの魅力的な世界におけるSpellNumberマクロの力です。次の魔法の準備として、このマクロを追加する方法を簡単に見てみましょう。
例:数字を単語に変換する
列Aに1から10までの数字の列があるとします。これらの数字を単語に変換して、データに優雅なタッチを加えたいと考えています。次のステップの準備として、これを実現するためのSpellNumberマクロの追加方法を見てみましょう。
ステップ1. Excelを開き、「開発」タブに移動します。このタブが表示されていなくても心配しないでください!Excelのオプションで簡単に有効にできます。


ステップ2. 「Visual Basic」をクリックしてVBAエディターを開きます。

ステップ3. VBAエディターで「挿入」に移動し、「標準モジュール」を選択します。ここで魔法が展開されます。

ステップ4. 以下の参考リンクからSpellNumberマクロのコードをコピーして、モジュールに貼り付けます。
Function SpellNumber(ByVal MyNumber) 'Update by Extendoffice Dim xStr As String Dim xFNum As Integer Dim xStrPoint Dim xStrNumber Dim xPoint As String Dim xNumber As String Dim xP() As Variant Dim xDP Dim xCnt As Integer Dim xResult, xT As String Dim xLen As Integer On Error Resume Next xP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ") xNumber = Trim(str(MyNumber)) xDP = InStr(xNumber, ".") xPoint = "" xStrNumber = "" If xDP > 0 Then xPoint = " point " xStr = Mid(xNumber, xDP + 1) xStrPoint = Left(xStr, Len(xNumber) - xDP) For xFNum = 1 To Len(xStrPoint) xStr = Mid(xStrPoint, xFNum, 1) xPoint = xPoint & GetDigits(xStr) & " " Next xFNum xNumber = Trim(Left(xNumber, xDP - 1)) End If xCnt = 0 xResult = "" xT = "" xLen = 0 xLen = Int(Len(str(xNumber)) / 3) If (Len(str(xNumber)) Mod 3) = 0 Then xLen = xLen - 1 Do While xNumber <> "" If xLen = xCnt Then xT = GetHundredsDigits(Right(xNumber, 3), False) Else If xCnt = 0 Then xT = GetHundredsDigits(Right(xNumber, 3), True) Else xT = GetHundredsDigits(Right(xNumber, 3), False) End If End If If xT <> "" Then xResult = xT & xP(xCnt) & xResult End If If Len(xNumber) > 3 Then xNumber = Left(xNumber, Len(xNumber) - 3) Else xNumber = "" End If xCnt = xCnt + 1 Loop xResult = xResult & xPoint SpellNumber = xResult End Function Function GetHundredsDigits(xHDgt, xB As Boolean) Dim xRStr As String Dim xStrNum As String Dim xStr As String Dim xI As Integer Dim xBB As Boolean xStrNum = xHDgt xRStr = "" On Error Resume Next xBB = True If Val(xStrNum) = 0 Then Exit Function xStrNum = Right("000" & xStrNum, 3) xStr = Mid(xStrNum, 1, 1) If xStr <> "0" Then xRStr = GetDigits(Mid(xStrNum, 1, 1)) & "Hundred " Else If xB Then xRStr = "and " xBB = False Else xRStr = " " xBB = False End If End If If Mid(xStrNum, 2, 2) <> "00" Then xRStr = xRStr & GetTenDigits(Mid(xStrNum, 2, 2), xBB) End If GetHundredsDigits = xRStr End Function Function GetTenDigits(xTDgt, xB As Boolean) Dim xStr As String Dim xI As Integer Dim xArr_1() As Variant Dim xArr_2() As Variant Dim xT As Boolean xArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ") xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ") xStr = "" xT = True On Error Resume Next If Val(Left(xTDgt, 1)) = 1 Then xI = Val(Right(xTDgt, 1)) If xB Then xStr = "and " xStr = xStr & xArr_1(xI) Else xI = Val(Left(xTDgt, 1)) If Val(Left(xTDgt, 1)) > 1 Then If xB Then xStr = "and " xStr = xStr & xArr_2(Val(Left(xTDgt, 1))) xT = False End If If xStr = "" Then If xB Then xStr = "and " End If End If If Right(xTDgt, 1) <> "0" Then xStr = xStr & GetDigits(Right(xTDgt, 1)) End If End If GetTenDigits = xStr End Function Function GetDigits(xDgt) Dim xStr As String Dim xArr_1() As Variant xArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ") xStr = "" On Error Resume Next xStr = xArr_1(Val(xDgt)) GetDigits = xStr End Function |
|---|
ステップ5. VBAエディターを閉じて、Excelのワークシートに戻ります。

SpellNumberマクロを追加した私の体験談:
ExcelにSpellNumberマクロを組み込むのは驚くほど簡単でした。手順に従って「開発」タブとVBAエディターを開き、簿記で使用される金額表記用のマクロコードを追加しました。数字がテキストに変わる仕組みには興味を惹かれました。とはいえ、スプレッドシートを壊さないようにするにはマクロの正確さが求められるため、慎重になる必要があることも学びました。バックアップを取り、VBAの構造を理解することが役立ちました。この経験は、論理と創造性を組み合わせることで、Excelの可能性をさらに広げてくれます。
Excelのワークシートが、言語の魔法を描くキャンバスに変わります。パート2では、数値データを言葉のシンフォニーへと昇華させる強力なツール、SpellNumberマクロの鍵をお渡しします。マスターへの道を照らす実践的な例を進み、この素晴らしいマクロの芸術性に導かれて、データが目の前で変化するのをご覧ください。
例:数値データを単語に変換する
ステップ1. 変換したい数値データが含まれるExcelワークシートを開きます。
ステップ2. 隣接する列を選択します。変換後の単語には列Bを使用しましょう。
ステップ3. 列Bの最初のセルに、=SpellNumber(A1) と入力します。

ステップ4. Enterキーを押して、セルA1の数字がセルB1で優雅に単語に変換されるのを確認します。
ステップ5. さらに数字を変換するには、数式を下にドラッグして、SpellNumberマクロの魅力を発揮させます。

SpellNumberマクロを使用した私の体験談:
SpellNumberマクロを試してみると、数字が単語に変わり、データに斬新なタッチが加わることで、新たな視点がもたらされました。プロセスは簡単で、コミュニケーションを向上させる可能性を秘めていました。ただし、正確さが重要であるため注意が必要です。少しのミスが予期せぬ結果を招く可能性があります。シームレスな体験には、マクロに慣れることと慎重な入力確認が不可欠です。
パート2:VBAを使わずにExcelで数字を単語に変換する方法
VBAの複雑な世界をナビゲートするのは難しく感じるかもしれませんが、心配はいりません。数字を単語に変換するという魔法のような偉業を達成するための、よりシンプルなルートが存在します。ユーザー定義関数を利用するこの代替アプローチは、同じ魅力的な変換を維持しながら、合理化された方法を提供します。以下のステップを掘り下げることで、この革新的なテクニックを明らかにし、VBAの複雑さを避けながら、言葉の叙情的な魅力をデータにシームレスに吹き込むことができます。
SpellNumberマクロを使用するメリット:
1. 使いやすさ:ユーザー定義関数はシンプルです。VBAの知識は必要なく、より幅広いユーザーが利用できます。
2. 普遍的なアクセシビリティ:各ブックに組み込む必要があるマクロとは異なり、この関数はワークシートと共に移動するため、シームレスな共有が保証されます。
3. マクロ警告ゼロ:ブックを共有する際の厄介なマクロ警告とはお別れです。この関数はバックグラウンドで動作し、数字を単語に優雅に変換します。
ExcelでSpellNumberマクロを使用するデメリット:
1. VBAの習熟度:マクロのカスタマイズにはVBAのスキルが必要であり、プログラミングに不慣れな人にとっては制限となる可能性があります。
2. ブック固有:マクロは各ブックにコピーまたは組み込む必要があり、複雑さとメンテナンスの手間が増えます。
3. マクロ警告:マクロを含むブックを共有すると警告が表示されることがあり、セキュリティ上の懸念を引き起こす可能性があります。
それでは、実践的な例を通じて、この方法(Excelで利用可能な数式の組み合わせを使用する)の芸術性を体験してみましょう。
VBAを使わずにExcelで数字を単語に変換する方法
例:数式を使用して数字を単語に変換する
ステップ1. 変換したい数値データが含まれるExcelワークシートを開きます。

ステップ2. 数字の隣の列を選択します。変換後の単語には列Bを使用しましょう。
ステップ3. 列Bの最初のセルに、次の数式を入力します。
=IF(OR(LEN(FLOOR(A1,1))=13,FLOOR(A1,1)<=0),"out of="" range="">1,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),3,1)+1,""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),2,1))=0,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),3,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),IF(A1>=10^9," billion ",""),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),4,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),5,1)+1,"",CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),6,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),5,1))>1,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),6,1)+1,""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),5,1))=0,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),6,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),4,3))>0," million ",""),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),7,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),8,1)+1,"",CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),9,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),8,1))>1,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),9,1)+1,""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),8,1))=0,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),9,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),7,3))," thousand ",""),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),10,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),11,1)+1,"",CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),12,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),11,1))>1,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),12,1)+1,""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"),IF(VALUE(MID(TEXT(INT(A1),REPT(0,12)),11,1))=0,CHOOSE(MID(TEXT(INT(A1),REPT(0,12)),12,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")))," "," ")&IF(FLOOR(A1,1)>1," "," "))&IF(ISERROR(FIND(".",A1,1)),""," point "&PROPER(IF(LEN(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2))=1,CHOOSE(1*LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2),"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")&" ","")&CONCATENATE(CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),11,1)+1,"",CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),12,1)+1,"One","One One","One Two","One Three","One Four","One Five","One Six","One Seven","One Eight","One Nine")&" ","Two","Three","Four","Five","Six","Seven","Eight","Nine"),IF(VALUE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),11,1))>1,CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),12,1)+1,""," One"," Two"," Three"," Four"," Five"," Six"," Seven"," Eight"," Nine")&" ",IF(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)="01","one ",IF(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),1)="0",CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE('Number to Word Without VBA'!A1,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),12,1)+1,"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine")&" ",""))))))) |
|---|
ステップ4. Enterキーを押して、セルA2の数字がセルB2で美しく単語に変わるのを観察します。

ステップ5. さらに数字を変換するには、数式を下にドラッグして、魔法のような変化を明らかにします。

ユーザー定義関数を使用した私の体験談:
ユーザー定義関数を試してみると、複雑なVBAコーディングや設定が不要なシンプルさに感動しました。数字を単語に変換する簡単な数式だけで、Excelにユニークなタッチが加わります。ただし、関数を十分に理解することが重要です。正確さを確認するために、さまざまなシナリオでテストしてください。この実践的な洞察は、関数の価値を強調しつつ、最高の結果を得るために慎重に使用することの重要性を示しています。
パート3:WPS Officeを使用する理由

これまで紹介した方法は、Microsoft Excelだけでなく、WPS Office Spreadsheetにも適用できる点に注目してください。しかし、ここではWPS Officeがもたらす独自のアドバンテージをご紹介します。Excelでの変換作業にWPS Officeをおすすめする理由は次のとおりです。
1. 価格:WPS Officeは機能を損なうことなく手頃な代替手段を提供し、個人とビジネスの両方で費用対効果の高い選択肢となります。
2. 互換性:WPS OfficeとMicrosoft Office間でドキュメントをシームレスに交換し、スムーズな共同作業とドキュメント共有を実現します。
3. 機能:WPS Officeは業界標準に匹敵する包括的な機能を備えており、多様なタスクを簡単にこなすことができます。また、AIライターやAIドキュメント翻訳などのAI機能も搭載しています。
4. ユーザーフレンドリーなインターフェース:初心者でもWPS Officeの操作は簡単です。直感的なインターフェースにより、スムーズに習得でき、効率的なワークフローが保証されます。
5. 隠れた機能の発見:WPSブログを掘り下げて、スキルを向上させる隠れた機能を見つけましょう。高度なテクニックから革新的なソリューションまで、各チュートリアルがマスターへの一歩となります。
6. 迅速なフォーマット変換:作業効率を高めるため、WPS OfficeはExcelをPDFに変換することも迅速に行えます。
7. AI搭載で生産性向上:WPS AIは、簡単なプロンプトでExcelの数字を単語に変換することから、数式の自動生成、ドキュメントの要約、テキストのリアルタイム翻訳まで、日常のタスクを強力にサポートします。
パート4:WPS AIを使用してExcelで数字を単語に変換する方法
先ほど紹介したVBA不要の方法をさらに進化させ、WPS AIは数式を手動で作成することなく、より直感的に数字を単語に変換する方法を提供します。このAIを活用したアプローチにより、プロセスがさらに合理化され、あらゆるスキルレベルのユーザーが利用できるようになります。
ステップ1. 空のセルに「=WPSAI」と入力し始め、ドロップダウンメニューから「WPSAI」関数をダブルクリックします。

ステップ2. 関数の括弧内にターゲットの数字が含まれるセルを参照し、プロンプトを追加します。

ステップ3. Enterキーを押すと、AIがそのセルに即座に数字に対応する単語を生成します。

ステップ4. 最初に変換されたセルからフィルハンドルを下にドラッグして、列の残りのすべての数字に同じAI変換を適用します。


選択したセルの数字がテキストに変換されます。
特定の変換ルールに縛られる静的なVBA不要の数式とは異なり、AIは自然言語のプロンプトを理解します。そのため、別のスタイルに変更したい場合は、数式を作り直すのではなく、プロンプトを調整するだけで済みます。また、複雑な構文を覚えたり、ネストされた関数のトラブルシューティングを行ったりする必要もありません。AIが面倒な作業を処理してくれるため、仕組みではなくデータに集中できます。統計が完了した後は、ExcelをPDFに変換するなど、WPS Officeの変換機能を使用することもできます。
Excelで数字を単語に変換する方法に関するよくある質問
逆に単語を数字に戻すことはできますか?
もちろんです!VBAコードを使用することで、WPS Officeで単語から数字への逆変換を行うことが可能です。今回は数字から単語への変換に焦点を当てましたが、WPS Officeには双方向の変換を処理できる多目的なツールが用意されています。
ワンクリックで数字を単語に変換できますか?
もちろんです。WPS Officeの優れた機能(VBAや利用可能な数式の組み合わせを使用)により、ワンクリックで数字を単語に変換するのは非常に簡単です。この合理化されたプロセスによりタスクが簡素化され、貴重な時間と労力を節約できます。
VBAとは何ですか?また、早く習得するにはどうすればよいですか?
VBAはMicrosoftのプログラミング言語であり、Excel、Word、PowerPointなどのOfficeアプリケーションでタスクを自動化し、カスタムソリューションを作成するために使用されます。
VBAを早く習得するためのポイント:
基本:変数やループなどのプログラミングの概念を理解します。
VBAエディター:Officeアプリで開いてコードを記述します。
例:シンプルなコード例を学びます。
マクロの記録:アクションを記録して学びます。
オンラインリソース:チュートリアルやコースを活用します。
実践:小さなプロジェクトを定期的にコーディングします。
ドキュメント:MicrosoftのVBAドキュメントを調べます。
コミュニティ:オンラインフォーラムに参加します。
構築:実際のタスク用に独自のマクロを作成します。
デバッグ:コードのエラーを修正する方法を学びます。
好奇心:探索と実験を続けます。
VBAをマスターすることで生産性が向上し、カスタマイズされたソリューションが提供されます。
変換プロセス中にファイルが破損した場合はどうすればよいですか?
通常、ファイルの破損問題は発生しません。しかし、変換プロセス中にファイルが破損した場合でも心配はいりません。WPSファイル修復ツールを使用して、Excelファイルを復元することができます。
まとめ
このガイドでは、VBAマクロとユーザー定義関数の両方に焦点を当て、Excelで数字を単語に変換するさまざまな方法を探りました。各方法について、明確なステップバイステップの手順と例を提供しました。WPS Officeのメリットを強調し、Excelとの互換性、ユーザーフレンドリーな機能、手頃な価格、そして簡単なプロンプトで数字から単語への変換を簡素化する強力なWPS AIを紹介しました。また、WPSにはExcelファイルをすぐに開いて表示できるxlsxビューアーも用意されています。 VBAとユーザー定義関数のどちらを選択しても、このガイドを活用すれば、より高度なオフィス作業にWPS Officeを使用する利点を認識しつつ、数字から単語への変換をシームレスに実現できます。





