セルの表示形式を設定
「数値をカンマ区切りに」「日付を和暦に」「文字を強調」「色で見やすく」など、セルの見た目を整える方法を初心者向けにまとめました。表示形式は Range.NumberFormat / NumberFormatLocal を使い、フォントや色は Font / Interior プロパティで設定します。
基本:表示形式を設定する
Sub FormatCell_Basic()
'数値をカンマ区切り(3桁区切り)
Range("B2").NumberFormat = "#,##0"
'小数点2桁まで
Range("C2").NumberFormat = "0.00"
'日付(yyyy/mm/dd)
Range("D2").NumberFormat = "yyyy/mm/dd"
'時刻(hh:mm:ss)
Range("E2").NumberFormat = "hh:mm:ss"
End Sub
VB- ポイント:
- NumberFormat: 英語表記。環境に依存せず安定。
- NumberFormatLocal: 日本語環境の書式をそのまま指定可能(例:「yyyy年m月d日」)。
よく使う表示形式のテンプレート
Sub FormatCell_Templates()
'通貨(円)
Range("F2").NumberFormatLocal = "#,##0円"
'パーセント(小数点1桁)
Range("G2").NumberFormat = "0.0%"
'負数を赤表示
Range("H2:H10").NumberFormatLocal = "#,##0;[赤]-#,##0"
'和暦日付
Range("I2").NumberFormatLocal = "ggge年m月d日"
End Sub
VB- ポイント:
- セミコロン区切り: 正数;負数;ゼロ;文字列 の順で書式を指定できます。
- 和暦:
gggeが元号表記。環境依存ですが日本語環境で便利。
フォントや色も同時に設定
Sub FormatCell_FontAndColor()
With Range("B2:D2")
.Font.Bold = True '太字
.Font.Color = RGB(0, 0, 255) '青文字
.Interior.Color = RGB(221, 235, 247) '背景色(水色)
.HorizontalAlignment = xlCenter '中央揃え
End With
End Sub
VB- ポイント:
- Font: 太字・斜体・色など文字の見た目。
- Interior: セル背景色。
- Alignment: 配置(左・中央・右)。
複数セルに一括で表示形式を設定
Sub FormatRange()
'表全体に数値書式を設定
Range("C3:E12").NumberFormat = "#,##0.00"
'見出し行を強調
With Range("B2:E2")
.Font.Bold = True
.Interior.Color = RGB(200, 200, 200)
End With
End Sub
VB- ポイント:
- 範囲指定: Range(“C3:E12”) のようにまとめて指定すれば一括設定可能。
- 見出し強調: 実務でよく使う「太字+背景色」。
例題で練習
例題1:売上表の金額列を「カンマ区切り+赤の負数」に
Sub Example_FormatAmounts()
Dim last As Long
last = Cells(Rows.Count, "E").End(xlUp).Row
Range("E3:E" & last).NumberFormatLocal = "#,##0;[赤]-#,##0"
End Sub
VB例題2:日付列を「yyyy年m月d日」形式に
Sub Example_FormatDates()
Dim last As Long
last = Cells(Rows.Count, "C").End(xlUp).Row
Range("C3:C" & last).NumberFormatLocal = "yyyy年m月d日"
End Sub
VB例題3:見出し行を太字・中央揃え・背景グレーに
Sub Example_FormatHeader()
With Range("B2:E2")
.Font.Bold = True
.Interior.Color = RGB(217, 217, 217)
.HorizontalAlignment = xlCenter
End With
End Sub
VB実務の落とし穴と対策
- 書式が消える: 値を再代入すると書式は残るが、セルコピーで「値のみ」貼ると書式が消える。必要なら書式もコピー。
- 環境依存: NumberFormatLocal は日本語環境専用。共有相手が英語環境なら NumberFormat を使う。
- 負数の色: [赤] のように色指定は環境依存。RGBでフォント色を設定する方が確実。
- 大量範囲: ScreenUpdating=False を併用すると高速化。
