数値を単語に変換する

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

Excel 2013とExcel 2016には、ワークシートのセルに英文ワードとして数値を表示する既定の関数を持っていないが、この機能を追加するには、モジュール シートに SpellNumber 関数のコードを貼り付けます。この関数では、ドルやセントの金額を単語に変換することができます。

代わりにTEXT 関数を使用している単語として表示することがなく、数値型の値をテキスト形式に変換する場合。

この記事の内容

数値を単語に変換する SpellNumber 関数を作成する

  1. キーボード ショートカット Alt + F11 を使用して、Visual Basic エディターを開きます。

    注: リボンの [Visual Basic Editor で[開発] タブが表示されているアクセスすることもできます。

  2. [挿入] タブをクリックし、[モジュール] をクリックします。

    [挿入] メニューで [モジュール] をクリックします。
  3. 次の行のコード行をコピーします。

    注: マクロ関数と呼ばれるこのコードは、スプレッドシートの数値を単語に変換するタスクを自動化します。

    Option Explicit

    ' メイン関数

    Function SpellNumber(ByVal MyNumber)

    Dim Dollars, Cents, Temp

    Dim DecimalPlace, Count

    ReDim Place(9) As String

    Place(2) = " Thousand "

    Place(3) = " Million "

    Place(4) = " Billion "

    Place(5) = " Trillion "

    ' 金額の文字列表現。

    MyNumber = Trim(Str(MyNumber))

    ' 小数点の位置、ない場合は 0。

    DecimalPlace = InStr(MyNumber, ".")

    ' セントを変換し、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 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

    SpellNumber = Dollars & Cents

    End Function

    ' 100 ~ 999 の値をテキストに変換する。

    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

    ' 10 ~ 99 の値をテキストに変換する。

    Function GetTens(TensText)

    Dim Result As String

    Result = "" ' 関数の一時的な値を Null にする。

    If Val(Left(TensText, 1)) = 1 Then ' 値が 10 ~ 19 の場合...

    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"

    Case Else

    End Select

    Else ' 値が 20 ~ 99 の場合...

    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 "

    Case Else

    End Select

    Result = Result & GetDigit _

    (Right(TensText, 1)) ' 一の位を取得する。

    End If

    GetTens = Result

    End Function

    ' 1 ~ 9 の値をテキストに変換する。

    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. コピーしたコード行を、[Module1 (コード)] ボックスに貼り付けます。

    [Module1 (コード)] ボックスに貼り付けられたコード。
  5. [ファイル] メニューの [終了して Microsoft Excel へ戻る] をクリックします。SpellNumber 関数を使用できるようになりました。

    注: この関数は、現在開いている Excel ファイルでのみ使用できます。この関数を別の Excel ブックで使用するには、前記の手順を繰り返してコードをコピーし、そのファイルに貼り付ける必要があります。

ページの先頭へ

個別のセルで SpellNumber 関数を使用する

  1. 文字で数値を表示するセルに数式 "=SpellNumber(value)" を入力します。value は適当な値に置き換えます。

  2. Enter キーを押します。

    たとえば、"=SpellNumber(22.50)" と入力すると、セルには "Twenty-Two Dollars and Fifty Cents" と表示されます。

    ヒント: 数値を変換して別のセルにテキストを表示するには、SpellNumber の数式で数値をセル参照に置き換えます。たとえば、"=SpellNumber(A1)" と入力すると、セル A1 の値をテキストに変換したものが表示されます。

ページの先頭へ

SpellNumber 関数のブックを保存する

Excel の標準のマクロなしブック形式では、ブックと共にマクロ関数を保存することはできません。[ファイル] メニューの [保存] をクリックした場合、[VB プロジェクト] ダイアログ ボックスが開きます。[いいえ] をクリックします。

VB プロジェクト ダイアログ ボックスで [いいえ] をクリックします。

Excel マクロ有効テンプレートとしてファイルを保存することにより、現在の形式でファイルを維持できます。

  1. [ファイル]、[名前を付けて保存] の順にクリックします。

  2. [ファイルの種類] ドロップダウン メニューをクリックし、[Excel Macro-Enabled Template] を選択します。

    Excel のマクロ有効テンプレートを選択します。
  3. [保存] をクリックします。

ページの先頭へ

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

関連項目

TEXT 関数

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×