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による書式設定を理解しやすくなります。
コメント