Excelでインド・ルピーおよびその他の通貨の数字を単語に変換する(2025年版)
以下は、Excelで数字をインド・ルピー、またはその他の任意の通貨に単語に変換する方法です。
請求書、見積書、税務フォーム、小切手、支払い伝票などの財務文書を扱う場合、通貨の値を数値と文字列の両方で表現することがよく必要になります。これにより、プロフェッショナリズムが加わり、詐欺や誤解を防ぐのに役立ちます。
例
Microsoft Excelには数字を単語に変換するための組み込み機能はありませんが、VBA、LAMBDA関数、またはオールインワンのKutools for Excelアドインを使用することで複数の効果的な方法があります。
VBAを使用してインド・ルピーで数字を単語に変換する(すべてのMicrosoftバージョン)
LAMBDA関数を使用してインド・ルピーで数字を単語に変換する(Microsoft 365のみ)
すべてのMicrosoftバージョンでUSD、EUR、その他の30以上の通貨に数字を単語に変換する
VBAを使用してインド・ルピーで数字を単語に変換する(すべてのMicrosoftバージョン)
どのExcelバージョンのユーザーでも、VBA(Visual Basic for Applications)を使用してインドの数値システム(千、ラク、コロールなど)に基づいて数値を単語に変換するカスタマイズ可能な方法を利用できます。
ステップ1. Alt + F11キーを押してVBAエディタ(Microsoft Visual Basic for Applicationsウィンドウ)を開きます。

ステップ2. [挿入] > [モジュール] に移動します。

ステップ3. VBAコードをモジュールに貼り付けます。
インド・ルピーの数字を単語に変換する
Function ConvertToRupees(ByVal MyNumber)
'UpdatebyExtendoffice
Dim Units As String, SubUnits As String, TempStr As String
Dim DecimalPlace As Integer, Count As Integer
Dim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Lakh "
Place(4) = " Crore "
MyNumber = Trim(Str(MyNumber))
DecimalPlace = InStr(MyNumber, ".")
If DecimalPlace > 0 Then
SubUnits = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
TempStr = GetHundreds(Right(MyNumber, 3))
If TempStr <> "" Then Units = TempStr & Place(Count) & Units
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
ConvertToRupees = "Rupees " & Application.WorksheetFunction.Trim(Units)
If SubUnits <> "" Then
ConvertToRupees = ConvertToRupees & " and " & SubUnits & " Paise"
End If
ConvertToRupees = ConvertToRupees & " Only"
End Function
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
Private Function GetTens(TensText)
Dim Result As String
If Val(Left(TensText, 1)) = 1 Then
Select Case Val(TensText)
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"
End Select
Else
Select Case Val(Left(TensText, 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 "
End Select
Result = Result & GetDigit(Right(TensText, 1))
End If
GetTens = Result
End Function
Private 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

ステップ4. 保存してExcelに戻ります。
ステップ5. セルを選択し、次のように数式を使用します:
Enterキーを押す

💡 ヒント: この方法は小数(パイス)をサポートし、オフラインでも動作します。
VBAを使用する際の制限
- マクロ有効ファイル (.xlsm) としてワークブックを保存する必要があります。
- 一部の環境では、セキュリティ設定によってマクロがブロックされる場合があります。
その他の通貨 (USD、EURなど) で数字を単語に変換する
「ドル」や「ユーロ」などの他の通貨に合わせて出力をカスタマイズするには、VBA関数内の文字列値を調整することができます。以下は、簡略化され、より柔軟なバージョンの関数です。
柔軟なVBAコードテンプレート(カスタム通貨)
'UpdatebyExtendoffice
Public Function NumberToWordsCustom(ByVal num As Double, Optional ByVal currency2 As String, Optional ByVal subCurrency As String) As String
Dim result As String
Dim dollars As Long
Dim cents As Long
dollars = Int(num)
cents = Round((num - dollars) * 100)
If Len(currency2) = 0 Then currency2 = "Dollars"
If Len(subCurrency) = 0 Then subCurrency = "Cents"
result = currency2 & " " & SpellNumber_English(dollars)
If cents > 0 Then
result = result & " and " & SpellNumber_English(cents) & " " & subCurrency
End If
NumberToWordsCustom = result & " Only"
End Function
Private Function SpellNumber_English(ByVal MyNumber As Long) As String
Dim Units As Variant, Tens As Variant, Teens As Variant
Dim Place() As String
Dim TempStr As String
Dim Count As Integer
Dim t As String
Dim StrNumber As String
Dim n As Integer
Place = Split(" Thousand Million Billion", " ")
Units = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine")
Tens = Array("", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
Teens = Array("Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
StrNumber = Trim(Str(MyNumber))
Count = 0
Do While StrNumber <> ""
n = Val(Right(StrNumber, 3))
If n <> 0 Then
t = ConvertHundreds(n, Units, Tens, Teens)
If Count > 0 Then t = t & " " & Place(Count - 1)
TempStr = t & " " & TempStr
End If
If Len(StrNumber) > 3 Then
StrNumber = Left(StrNumber, Len(StrNumber) - 3)
Else
StrNumber = ""
End If
Count = Count + 1
Loop
SpellNumber_English = Trim(TempStr)
End Function
Private Function ConvertHundreds(ByVal n As Integer, Units As Variant, Tens As Variant, Teens As Variant) As String
Dim result As String
If n >= 100 Then
result = Units(Int(n / 100)) & " Hundred "
n = n Mod 100
End If
If n >= 20 Then
result = result & Tens(Int(n / 10)) & " "
n = n Mod 10
ElseIf n >= 10 Then
result = result & Teens(n - 10) & " "
n = 0
End If
If n > 0 Then
result = result & Units(n)
End If
ConvertHundreds = Trim(result)
End Function
例 VBA数式:

その他の通貨の例 VBA数式:
=NumberToWordsCustom(A2, "Euros", "Cents")
=NumberToWordsCustom(A2, "Pounds", "Pence")
このコードは柔軟性があり、必要な通貨と副単位を渡すだけです。
マクロ有効ファイルとしてワークブックを保存する
VBAを使用している場合、マクロが有効な状態でワークブックを保存することが重要です。そうしないと、ファイルを閉じたときにコードが失われます。
ステップ1. [ファイル] > [名前を付けて保存] に移動します。

ステップ2. 場所を選択し、ファイルタイプとして「Excelマクロ有効ワークブック (*.xlsm)」を選択します。

ステップ3. [保存] をクリックします。
✅ =ConvertToRupees(A2) のようなカスタム関数は今後も保持され、いつでも再利用できるようになります。
LAMBDA関数を使用してインド・ルピーで数字を単語に変換する(Microsoft 365のみ)
Excel 365のユーザーは、カスタム数式を定義できる新しいExcel機能であるLAMBDAを使用でき、VBAは不要です。
🪄 LAMBDAとは?
LAMBDAはExcelの機能で、SUMやIFのような組み込み関数と同じように、数式を使用して独自のカスタム関数を作成できますが、コードやマクロは不要です。繰り返しの論理を簡素化し、スプレッドシートを整理しやすくメンテナンスしやすいものにするのに最適です。
ステップ1: 名前管理に移動し、[数式] > [名前管理] をクリックします。

ステップ2: 新しい名前を作成します。
[新規] ボタンをクリックします。
名前を入力します。
例: RupeeToWords
ステップ3: 次のLAMBDA数式を参照先フィールドに貼り付けます:
=LAMBDA(n, LET( units, {"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"}, teens, {"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"}, tens, {"","","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"}, num, INT(n), paise, ROUND((n - INT(n)) * 100, 0), ConvertTwo, LAMBDA(x, IF(x<10, INDEX(units, x+1), IF(x<20, INDEX(teens, x-9), INDEX(tens, INT(x/10)+1) & IF(MOD(x,10)>0, " " & INDEX(units, MOD(x,10)+1), "") ) ) ), ConvertThree, LAMBDA(x, IF(x=0, "", IF(x<100, ConvertTwo(x), INDEX(units, INT(x/100)+1) & " Hundred" & IF(MOD(x,100)>0, " " & ConvertTwo(MOD(x,100)), "") ) ) ), words, IF(num=0, "Zero", TEXTJOIN(" ", TRUE, IF(INT(num/10000000)>0, ConvertTwo(INT(num/10000000)) & " Crore", ""), IF(MOD(INT(num/100000),100)>0, ConvertTwo(INT(MOD(num,10000000)/100000)) & " Lakh", ""), IF(MOD(INT(num/1000),100)>0, ConvertTwo(INT(MOD(num,100000)/1000)) & " Thousand", ""), IF(MOD(INT(num/100),10)>0, INDEX(units, INT(MOD(num,1000)/100)+1) & " Hundred", ""), IF(MOD(num,100)>0, ConvertTwo(MOD(num,100)), "") ) ), result, "Rupees " & words & IF(paise>0, " and " & ConvertTwo(paise) & " Paise", "") & " Only", result ))[OK] をクリックして新しい名前を保存します。

ステップ3. 名前管理を閉じてExcelに戻ります。
ステップ4. 任意のセルで次のように数式を使用します:
Enterキーを押します。

👀 完全なLAMBDA関数コードは、コロール、ラク、千、小数を処理します。
すべてのMicrosoftバージョンでUSD、EUR、30以上の通貨に数字を単語に変換する
最も効率的でプロフェッショナルなソリューションとして、Kutools for Excelの数字を単語に変換機能を使用してください。この強力なツールは次のことをサポートします:
🌍 30以上の通貨に対応しています。例えば:
- 米ドル (USD)
- ユーロ (EUR)
- 中国元 (CNY)
- 英国ポンド (GBP)
- 等。
ステップ1. 変換したいセルを選択します。

ステップ2. [Kutools] > [コンテンツ] > [数字を単語に変換] に移動します。

ステップ3. 対象の通貨を選択し、[OK] をクリックします。

数字が指定された通貨に変換されます。

😁 ヒント: 数字を直接単語に変換したい場合は、「通貨単位に変換しない」オプションをオンにしてください。結果は次のようになります:

各方法の使用タイミング
柔軟でプログラミング可能なソリューションが必要で、マクロに精通している場合はVBAを使用します。
- Excel 365を使用しており、インド・ルピーの値をたまに変換する必要がある場合、LAMBDAを使用します。これは軽量で共有可能なソリューションであり、マクロや外部ツールを必要とせず、シンプルまたは個人的なタスクに最適です。
- 最も簡単で高速かつ多用途なソリューションが必要で、コーディングが不要な場合は、Kutools for Excelを使用します。Kutoolsは特に次の場面で便利です:
- 複数の通貨を取り扱うとき。
- 大量のデータセットまたは一括して値を変換する必要があるとき。
- 30以上の通貨オプションとAI駆動のパフォーマンスを持つ、マクロ不要のプロフェッショナル対応ツールが必要なとき。
最高のオフィス生産性ツール
🤖 | Kutools AI Aide:データ分析を革新:インテリジェント実行 | コード生成 | カスタム数式の作成 | データを分析してグラフを生成 | Kutools Functions を呼び出す… |
人気機能:重複の検索・ハイライト・マーキング | 空白行を削除 | データを失わず列やセルを統合 | 丸める ... | |
スーパーLOOKUP:複数条件VLOOKUP | 複数値VLOOKUP | 複数シートの検索 | ファジーマッチ .... | |
高度なドロップダウンリスト:すばやくドロップダウンリストを作成 | 依存型ドロップダウンリスト | 複数選択ドロップダウンリスト .... | |
列の管理:特定数の列を追加 | 列を移動 | 非表示列の表示状態を切り替え | 範囲と列の比較 ... | |
注目機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブック&ワークシートの管理 | オートテキスト ライブラリ (Auto Text) | 日付ピッカー | データの統合 | セルの暗号化/復号化 | リスト送信で電子メールを送信 | スーパーフィルター | 特殊フィルタ(太字/斜体/取り消し線でフィルタ...) | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など) | 50 種以上のグラフ タイプ(ガントチャートなど) | 40を超える実用的な 数式(誕生日に基づいて年齢を計算する、など) | 19種の 挿入ツール(QRコードの挿入、パスから画像の挿入など) | 12種類の 変換ツール(単語に変換する、通貨変換など) | 7つの 結合&分割ツール(高度な行のマージ、セルの分割など) | ...さらに多数 |
Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...
Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます
- Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
- 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
- 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!