【Excel VBA】セルの書式を変更する基本コードとやさしい解説

VBA & Excel
スポンサーリンク
スポンサーリンク

はじめに

Excelで作業をしていると、
「文字の色を変えたい」
「背景色をつけたい」
「フォントサイズを整えたい」
そんな“ちょっとした整えごと”がよくあります。

VBAでは、セルの書式を細かくコントロールでき、
表の見やすさや読みやすさを静かに支えてくれます。

ここでは、セルの書式を変更する基本のコードと、実務で役立つポイントを解説します。

まずはコードを確認

Range("A1").Font.Bold = True
Range("A1").Interior.Color = vbYellow

もっともシンプルな書き方です。
A1セルを太字にし、背景色を黄色にします。

書式変更の基本プロパティ

フォントの書式を変更する

Range("A1").Font.Bold = True          '太字
Range("A1").Font.Italic = True '斜体
Range("A1").Font.Size = 14 'フォントサイズ
Range("A1").Font.Color = vbRed '文字色

よく使うプロパティは Font の中にまとまっています。

背景色を変更する

Range("A1").Interior.Color = RGB(255, 230, 153)

RGB を使うと、やわらかい色も自由に設定できます。

罫線を設定する

With Range("A1:D1").Borders
.LineStyle = xlContinuous
.Weight = xlThin
End With

表の見た目を整えるときに欠かせない書式です。

表示形式(NumberFormat)を変更する

Range("A1").NumberFormat = "yyyy/mm/dd"   '日付
Range("B1").NumberFormat = "#,##0" 'カンマ区切り
Range("C1").NumberFormat = "0.0%" 'パーセント

実務で特に使う頻度が高いプロパティです。

具体的な例で理解する

見出し行の書式をまとめて変更する

With Range("A1:D1")
.Font.Bold = True
.Interior.Color = RGB(220, 230, 241)
.HorizontalAlignment = xlCenter
End With

見出しを整えると、表全体が落ち着いた印象になります。

条件に応じて書式を変える

If Range("B2").Value < 0 Then
Range("B2").Font.Color = vbRed
End If

マイナス値を赤字にするなど、実務でよく使うパターンです。

複数セルに一括で書式を設定する

Range("A2:A10").Font.Size = 12
Range("A2:A10").Interior.Color = vbWhite

範囲指定でまとめて整えられます。

書式変更の注意点(実務で特に大切)

  • 書式は「値」とは別物
    → コピー・貼り付けのときに意図しない書式がつくことがあります。
  • 条件付き書式と競合することがある
    → 条件付き書式が優先されるため、VBAの書式が反映されない場合があります。
  • 大量のセルに書式を設定すると処理が重くなる
    → With を使う、範囲を絞るなどの工夫が有効です。

応用:書式をクリアする

Range("A1:D10").ClearFormats

書式だけをリセットしたいときに便利です。

応用:書式をコピーして貼り付ける

Range("A1").Copy
Range("B1").PasteSpecial xlPasteFormats

見た目を揃えたいときに使います。

まとめ

  • フォント・背景色・罫線・表示形式など、書式は細かく設定できる
  • Font、Interior、NumberFormat が基本
  • 条件に応じた書式変更も可能
  • 書式は値とは別物のため、コピー時の挙動に注意
  • ClearFormats で書式だけリセットできる

セルの書式を整えることは、
「読みやすさ」という静かな価値を生み出す大切な作業です。


decopon
decopon

書式を整えることは、表にやさしさを添える作業です。
VBAで自動化できると、毎日の整えごとがすっと軽くなります。

moco
moco

色や文字の形を変えるだけで、表がふわっと見やすくなるね。
VBAは、そんな小さな気配りも得意なんだなあ。

コメント

タイトルとURLをコピーしました