【Excel VBA】セルの書式設定|色・フォント・罫線・配置を変更する方法

Excel VBAを使うと、セルの値だけでなく、背景色・文字色・フォント・罫線・配置・表示形式などの書式も自動で設定できます。

たとえば、次のようなExcel操作をVBAで自動化できます。

  • セルの背景色を変更する
  • 文字の色や大きさを変更する
  • 文字を太字・斜体にする
  • セルの文字を中央揃えにする
  • 罫線を設定する
  • セルを結合する
  • 文字を折り返す
  • 列幅や行の高さを調整する
  • 数値や日付の表示形式を変更する
  • 設定した書式を解除する

この記事では、Excel VBAでよく使うセルの書式設定を、基本から実用的な使い方までまとめて紹介します。

1. VBAでセルを指定する基本

書式設定を行う前に、まずは「どのセルを変更するのか」を指定します。

VBAでは、主にRangeとCellsを使用します。

Rangeでセルを指定する

Range("A1")

と記述すると、A1セルを指定できます。

例えば、A1セルの背景色を変更する場合は次のように書きます。

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

複数のセルを指定することもできます。

Range("A1:C5")

これはA1~C5の範囲を指定します。

Cellsでセルを指定する

行番号・列番号でセルを指定したい場合はCellsが便利です。

Cells(1, 1)

これはA1セルを意味します。

Cells(2, 3)

なら、2行目・3列目なのでC2セルです。

繰り返し処理などでセルの位置を変えながら処理する場合は、Cellsがよく使われます。


2. セルの背景色を変更する

セルの背景色を変更するには、Interior.Colorを使用します。

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

このコードを実行すると、A1セルの背景色が黄色になります。

RGBで色を指定する

VBAではRGB関数を使って色を指定できます。

RGB(255, 0, 0)

なら赤色、

RGB(0, 0, 255)

なら青色です。

よく使う色は次の通りです。

色RGB
赤RGB(255, 0, 0)
緑RGB(0, 255, 0)
青RGB(0, 0, 255)
黄色RGB(255, 255, 0)
白RGB(255, 255, 255)
黒RGB(0, 0, 0)
グレーRGB(200, 200, 200)

例えば、A1:C1を黄色にする場合は、

Range("A1:C1").Interior.Color = RGB(255, 255, 0)

とします。


3. セルの文字色を変更する

文字の色を変更する場合は、Font.Colorを使用します。

Range("A1").Font.Color = RGB(255, 0, 0)

これでA1セルの文字が赤色になります。

背景色の設定にはInterior.Color、文字色の設定にはFont.Colorを使用する点に注意してください。

'背景色
Range("A1").Interior.Color = RGB(255, 255, 0)

'文字色
Range("A1").Font.Color = RGB(255, 0, 0)

4. フォントを設定する

フォントに関する設定はFontを使用します。

フォント名を変更する

Range("A1").Font.Name = "Meiryo"

A1セルのフォントをメイリオに変更します。

フォントサイズを変更する

Range("A1").Font.Size = 14

文字サイズを14ポイントに変更します。

文字を太字にする

Range("A1").Font.Bold = True

太字を解除する場合はFalseを指定します。

Range("A1").Font.Bold = False

文字を斜体にする

Range("A1").Font.Italic = True

文字に下線を付ける

Range("A1").Font.Underline = True

このように、Fontのプロパティを変更することで、文字の見た目を細かく設定できます。


5. セルの文字位置を変更する

セルの文字位置は、HorizontalAlignmentとVerticalAlignmentで設定できます。

横方向を中央揃えにする

Range("A1").HorizontalAlignment = xlCenter

左揃えにする

Range("A1").HorizontalAlignment = xlLeft

右揃えにする

Range("A1").HorizontalAlignment = xlRight

縦方向を中央揃えにする

Range("A1").VerticalAlignment = xlCenter

例えば、横方向・縦方向ともに中央揃えにする場合は、

With Range("A1")
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
End With

とします。


6. セル内の文字を折り返す

セルの幅に収まらない長い文字を、セル内で折り返して表示したい場合はWrapTextを使用します。

Range("A1").WrapText = True

これで、セル内の文字が自動的に折り返されます。

解除する場合は、

Range("A1").WrapText = False

とします。


7. セルに罫線を設定する

表を作成するときには、罫線の設定もよく使用します。

範囲全体に罫線を設定する場合は、Bordersを使用します。

Range("A1:C5").Borders.LineStyle = xlContinuous

これでA1:C5の範囲に罫線が設定されます。

罫線の太さを変更する

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

Weightでは罫線の太さを指定できます。

xlThin
xlMedium
xlThick

などを使用できます。

罫線を削除する

罫線を解除する場合は、

Range("A1:C5").Borders.LineStyle = xlNone

とします。


8. セルを結合する

複数のセルを1つに結合する場合はMergeを使用します。

Range("A1:C1").Merge

これでA1~C1が1つのセルになります。

例えば、表のタイトルを中央に配置する場合は、

With Range("A1:C1")
    .Merge
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
End With

とすると便利です。

セル結合を解除する

結合したセルを元に戻すにはUnMergeを使用します。

Range("A1:C1").UnMerge

セル結合の注意点

Mergeは見た目を整える場合には便利ですが、データ処理では注意が必要です。

結合セルがあると、並べ替えやフィルター、セルを順番に処理するマクロなどで扱いにくくなることがあります。

そのため、データを管理する表では、できるだけセル結合を避け、タイトルや見出しなどに限定して使用するのがおすすめです。


9. 列幅を自動調整する

入力された文字に合わせて列幅を自動調整するにはAutoFitを使用します。

Columns("A").AutoFit

A列の幅が、入力されている内容に合わせて自動調整されます。

複数の列をまとめて調整することもできます。

Columns("A:C").AutoFit

10. 行の高さを自動調整する

行の高さを自動調整する場合もAutoFitを使用します。

Rows("1:10").AutoFit

これで1~10行目の高さが自動調整されます。

文字を折り返して表示する場合にも、AutoFitを組み合わせると便利です。

With Range("A1:A10")
    .WrapText = True
    .Rows.AutoFit
End With

11. セルの表示形式を変更する

数値や日付などの表示方法を変更する場合は、NumberFormatを使用します。

数値を3桁区切りにする

Range("A1:A10").NumberFormat = "#,##0"

例えば、

1000000

という値を、

1,000,000

のように表示できます。

日付を表示する

Range("A1:A10").NumberFormat = "yyyy/mm/dd"

例えば、

2026/09/10

のような形式で表示できます。

金額として表示する

Range("A1:A10").NumberFormat = "#,##0円"

表示形式は、セルに保存されている値そのものを変更するのではなく、Excel上での表示方法を変更するものです。


12. Withを使って複数の書式を設定する

1つのセルや範囲に複数の書式を設定する場合は、Withを使用するとコードをすっきりまとめられます。

例えば、見出しを設定する場合です。

With Range("A1:C1")
    .Interior.Color = RGB(0, 112, 192)
    .Font.Color = RGB(255, 255, 255)
    .Font.Bold = True
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
End With

このコードでは、

  • 背景色を変更
  • 文字色を白に変更
  • 太字に変更
  • 横方向を中央揃え
  • 縦方向を中央揃え

という5つの設定をまとめて行っています。

同じセルや範囲に複数の設定を行う場合は、Withを使うと可読性が高くなります。


13. 設定した書式を解除する

VBAでは、設定した書式を解除することもできます。

背景色を解除する

Range("A1").Interior.ColorIndex = xlColorIndexNone

罫線を解除する

Range("A1:C5").Borders.LineStyle = xlNone

結合を解除する

Range("A1:C1").UnMerge

書式をまとめて解除する

範囲内の書式をすべて解除する場合はClearFormatsを使用します。

Range("A1:C5").ClearFormats

ClearFormatsは、セルの値や数式を削除せず、書式だけを解除します。

「入力したデータは残したまま、見た目だけ元に戻したい」という場合に便利です。


14. VBAでよく使う書式設定一覧

最後に、この記事で紹介した書式設定を一覧にまとめます。

設定内容使用するプロパティ・メソッド
背景色Interior.Color
文字色Font.Color
フォント名Font.Name
フォントサイズFont.Size
太字Font.Bold
斜体Font.Italic
下線Font.Underline
横位置HorizontalAlignment
縦位置VerticalAlignment
文字の折り返しWrapText
罫線Borders
セル結合Merge
セル結合解除UnMerge
列幅・行高の自動調整AutoFit
表示形式NumberFormat
書式解除ClearFormats

15. まとめ

Excel VBAでは、セルの値を操作するだけでなく、セルの見た目も細かく自動設定できます。

特に最初は、次の書式設定を覚えておくと便利です。

背景色       → Interior.Color
文字色       → Font.Color
フォント     → Font
文字位置     → HorizontalAlignment / VerticalAlignment
罫線         → Borders
折り返し     → WrapText
列幅調整     → AutoFit
表示形式     → NumberFormat
書式解除     → ClearFormats

また、複数の書式を一度に設定するときはWithを使うことで、コードを読みやすく整理できます。

VBAで書式設定を自動化すれば、毎回手作業で行っていたExcelの表作成や帳票のレイアウト調整を効率化できます。

まずは背景色や文字色など簡単な設定から試し、徐々に罫線・配置・表示形式などを組み合わせていくと、VBAによる書式設定を理解しやすくなります。

コメント

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