Excel VBA 逆引き集 | セルの表示形式を設定

Excel VBA
スポンサーリンク

セルの表示形式を設定

「数値をカンマ区切りに」「日付を和暦に」「文字を強調」「色で見やすく」など、セルの見た目を整える方法を初心者向けにまとめました。表示形式は 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 を併用すると高速化。
タイトルとURLをコピーしました