Excel VBA:Format関数による小数点や指数などの様々な数値表示の書式

Excel VBAでFormat関数を使用し、様々な数値の表示書式を掲載します。

通常の数値の表示、カンマの桁区切り、小数点、パーセント表示、指数、文字と組み合わせた書式の使用例VBAです。

Format関数で数値を表示する場合の書式指定文字は下記の種類があります。

文字 内容
0 1桁を表します。数字があれば数字を表示し、なければ0を表示します。
# 1桁を表します。数字があれば数字を表示し、なければ表示しません。 数値が0の場合表示しません。
.(カンマ) 小数点を表示します。
% 100倍しパーセント記号を付けて表示します。
e- e+ E- E+ 指数形式で表示します。e+ E+ の場合プラス記号が表示されます。
¥¥(半角で) 円記号を表示します。
" " 文字列を表示します。


Homeに戻る > Excel 文字列関数のTipsへ

Format関数は文字列で返るので、今回結果を表示するセルは事前にセルの書式設定で文字列に設定しておきます。
そうしないと数字だけの文字列の場合、Excelが自動的に数値に変換し表示してしまいます。

「0」と「#」の書式指定文字で数値を表示したVBA



Sub MyFormat()
    Range("B2") = Format(987, "00000")
    Range("B3") = Format(987, "#####")
    Range("B4") = Format(0, "00000")
    Range("B5") = Format(0, "#####")
    Range("B6") = Format(0, "####0")
End Sub

実行結果です。
B2セル : 桁に数字がない部分は0で埋めて表示されています。
B3セル : 通常の数値表示
B4セル : 数値が0でも0で指定した桁は0で埋めて表示されています。
B5セル : 数値が0の場合、何も表示されずに空白になっています。
B5セル : 数値が0の場合、0と表示されています。


カンマを使用し3桁区切りで数値を表示するVBA



Sub MyFormat1()
    Range("B2") = Format(987654321, "0,000")
    Range("B3") = Format(987654321, "#,###")
    Range("B4") = Format(0, "0,000")
    Range("B5") = Format(0, "#,###")
    Range("B6") = Format(0, "##,##0")
End Sub

実行結果です。
B2セル : 「0」の書式指定文字で、3桁区切りで表示されています。
B3セル : 「#」の書式指定文字で、3桁区切りで表示されています。
B4セル : 数値が0でも0で指定した桁は0で埋められ、3桁区切りで表示されています。
B5セル : 数値が0の場合、カンマも表示されずに空白になっています。
B5セル : 数値が0の場合、カンマは表示されずに0と表示されています。




様々な小数点の表示書式を設定したVBA



Sub MyFormat2()
    Range("B2") = Format(987.654, "0.0000")
    Range("B3") = Format(987.654, "000.000")
    Range("B4") = Format(987.654, "000.00")
    
    Range("B5") = Format(987.654, "#.####")
    Range("B6") = Format(987.654, "###.###")
    Range("B7") = Format(0.654, "###.##")
    
    Range("B8") = Format(987.654, "#.#####0")
    Range("B9") = Format(0, "#.#")
    Range("B10") = Format(0, "0.0")
End Sub

実行結果です。
B2セル : 「0」の書式指定文字で、数字がない小数点以下4桁めも0で埋められています。
B3セル : そのままです。
B4セル : 小数点以下2桁に指定しているので、3桁目の数字は表示されていません。
B5セル : 「#」の書式指定文字で、数字がない小数点以下4桁めは表示されていません。
B6セル : そのままです。
B7セル : 「#」の書式指定文字で、小数点以下2桁のみ表示されています。
B8セル : 小数点以下の最終が「0」の書式指定文字なので、そこまで数字がない部分も0で埋められています。
B9セル : 数値が0なので表示されていません。
B10セル : 数値が0ですが書式の「0.0」のまま表示されています。


%表示するVBA



Sub MyFormat3()
    Range("B2") = Format(0.987654, "0%")
    Range("B3") = Format(0.987654, "0.000%")
    Range("B4") = Format(1.987654, "0.0%")

    Range("B5") = Format(0, "0%")
    Range("B6") = Format(0, "#%")
End Sub

実行結果です。
B2セル : 小数点以下は四捨五入され表示されていません。
B3セル : 小数点以下3桁になっています。
B4セル : 小数点以下1桁になっています。
B5セル : 「0」の書式指定文字で、数値が0の場合「0%」と表示されます。
B6セル : 「#」の書式指定文字で、数値が0の場合「%」記号のみ表示されます。


指数形式で表示するVBA



Sub MyFormat4()
    Range("B2") = Format(987654, "0.0e-")
    Range("B3") = Format(987654, "0.0E-")
    
    Range("B4") = Format(987654, "0.0e+")
    Range("B5") = Format(987654, "0.0E+")

    Range("B6") = Format(0.987654, "0.0e-")
    Range("B7") = Format(0.987654, "0.0E-")
    
    Range("B8") = Format(0.987654, "0.0e+")
    Range("B9") = Format(0.987654, "0.0E+")
End Sub

実行結果です。
B2セル : プラス記号が表示されていません。
B3セル : プラス記号が表示されていません。
B4セル : プラス記号が表示されています。
B5セル : プラス記号が表示されています。
B6セル~ B9セル: 通常表示です。


文字と組み合わせて数値を表示するVBA



Format関数の引数の書式はダブルクォーテーションで囲むので、文字を表示させるためにはダブルクォーテーションが多くなってしまいます。
Range("B3") = "答えは" & Format(987654, "0") & "です。"
でも結果は同じです。

Sub MyFormat5()
    Range("B2") = Format(987654, """答えは""0""です。""")
End Sub

実行結果です。
文字列と数値が組み合わせて表示できました。
文字列と数値が組み合わせて表示できた



Homeに戻る > Excel 文字列関数のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved