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
実行結果です。
文字列と数値が組み合わせて表示できました。