数値の書式
Excel VBA を使って数値の書式を設定する方法について解説します。
(Last modified: )
「#」と「0」
数値の書式の基本は「#」と「0」です。小数点は「.」、桁区切りは「,」を使います。
まず「#」と「0」の違いは次の例を見てください。
書式 | 対象 | 表示 |
---|---|---|
##.## | 1.4 | 1.4 |
00.00 | 1.4 | 01.40 |
##.## | 123.456 | 123.46 |
00.00 | 123.456 | 123.46 |
「#」の場合は表示する数値が無い場合は無視されますが、「0」の場合は0が補って表示されます。またどちらの場合でも整数部分が書式に指定した文字数よりも多くてもそのまま表示されますが、小数点以下の部分は書式に指定した桁の位置で四捨五入されて表示されます。
Sub テスト() Range("A1:A2").Value = 1.4 Range("A3:A4").Value = 123.456 Range("A1").NumberFormatLocal = "##.##" Range("A3").NumberFormatLocal = "##.##" Range("A2").NumberFormatLocal = "00.00" Range("A4").NumberFormatLocal = "00.00" End Sub
上記マクロを実行すると次のようになります。
桁区切り
次に桁区切りです。「#,###」のように記述した場合、1000単位で桁区切りが付きます。また「#」だけでの場合0の値が表示されないため通常は「#,##0」のように記述します。
書式 | 対象 | 表示 |
---|---|---|
#,### | 13445 | 13,445 |
#,### | 8565245 | 8,565,245 |
#,### | 0 | 表示なし |
#,##0 | 0 | 0 |
実際に試してみます。
Sub テスト() Range("A1").Value = 13445 Range("A1").NumberFormatLocal = "#,###" Range("A2").Value = 8565245 Range("A2").NumberFormatLocal = "#,###" Range("A3").Value = 0 Range("A3").NumberFormatLocal = "#,###" Range("A4").Value = 0 Range("A4").NumberFormatLocal = "#,##0" End Sub
上記マクロを実行すると次のようになります。
スペースでの位置調整
次に「0」ではなくスペースで桁をそろえて表示する方法です。「0」の代わりに「?」を使い「???.???」のように書式を指定します。少し分かりにくいですが小数点の位置が同じ位置になるように表示されます。
12.3 3145.33 1.457
実際に試してみます。
Sub テスト() Range("A1").Value = 12.3 Range("A2").Value = 3145.33 Range("A3").Value = 1.4579 Range("A1:A3").NumberFormatLocal = "?.???" End Sub
上記マクロを実行すると次のようになります。
色の指定
書式として色を指定することも出来ます。指定できる色は8色で、書式の先頭に括弧[]の中に色を記述して指定します。8色は次の通りです。
[黒] [青] [水] [緑] [紫] [赤] [白] [黄]
実際に試してみます。
Sub テスト() Range("A1:A4").Value = 12.345 Range("A1").NumberFormatLocal = "[黒]0.000" Range("A2").NumberFormatLocal = "[緑]0.000" Range("A3").NumberFormatLocal = "[赤]0.000" Range("A4").NumberFormatLocal = "[青]0.000" End Sub
上記マクロを実行すると次のようになります。
-- --
Excel VBA を使って数値の書式を設定する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。