数値の書式

Excel VBA を使って数値の書式を設定する方法について解説します。

(Last modified: )

「#」と「0」

数値の書式の基本は「#」と「0」です。小数点は「.」、桁区切りは「,」を使います。

まず「#」と「0」の違いは次の例を見てください。

書式対象表示
##.##1.41.4
00.001.401.40
##.##123.456123.46
00.00123.456123.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」のように記述します。

書式対象表示
#,###1344513,445
#,###85652458,565,245
#,###0表示なし
#,##000

実際に試してみます。

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 )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。