【Excel VBA】選択したセル範囲を一瞬で「表っぽく」整える方法|初心者向けにやさしく解説

ExcelVBA

「数字は入っているけど、表としては見づらい…」
「毎回、枠線を引いたり背景色をつけたりするのが面倒…」

そんなときに便利なのが、選択したセル範囲を一瞬で「表っぽく」整えてくれるExcel VBAのコードです。
本記事では、初心者でもコピペで使えるVBAコードと、その中身の意味をイラスト付きでやさしく解説します。

この記事でわかること

  • 選択したセル範囲を一瞬で「表っぽく」整えるVBAコード
  • コードの一行一行が何をしているのか(初心者向け解説)
  • 背景色や枠線の太さを変える応用テクニック
  • よくあるエラーと、つまずいたときの対処法

完成イメージ:ただの数字が「表」っぽく変身

ExcelVBAでセル範囲を表っぽく整えるイメージ(Before→After)
図:VBA実行前と実行後のイメージ(イラストは差し替えてご利用ください)

イメージとしては、こんな感じです。

【実行前】
  1   2   3
  4   5   6
  7   8   9

【実行後】
┌────┬────┬────┐
│  1  │  2  │  3  │  ← 枠線+背景色で見やすく!
├────┼────┼────┤
│  4  │  5  │  6  │
├────┼────┼────┤
│  7  │  8  │  9  │
└────┴────┴────┘

コピペで使える!セル範囲を表っぽく整えるVBAコード

さっそく、セル範囲を整えるためのVBAコードを紹介します。まずは、そのままコピペでOKです。

セル範囲を表っぽく整える基本コード

Sub FormatAsTableLike()

    ' 選択中のセル範囲(Selection)に対して書式をまとめて設定する
    With Selection
        ' 枠線をつける(線の種類と太さ)
        .Borders.LineStyle = xlContinuous
        .Borders.Weight = xlThin

        ' 背景色を薄い水色にする(RGB:赤, 緑, 青)
        .Interior.Color = RGB(240, 248, 255)
    End With

End Sub

このマクロを実行すると、「今選択しているセル範囲」に対して、枠線と背景色がまとめて設定されます。

コードを実行するまでの手順(初心者向け)

  1. Excelを開き、表っぽく整えたいセル範囲を含むシートを表示する
  2. Alt + F11 キーを押して「VBE(VBAエディタ)」を開く
  3. 「挿入」→「標準モジュール」をクリック
  4. 表示された白い画面(コードウィンドウ)に、先ほどのコードを貼り付ける
  5. Ctrl + Sで保存(マクロ有効ブック「.xlsm」で保存)
  6. Excelに戻り、表にしたいセル範囲を選択してから、
    「開発」タブ →「マクロ」→ FormatAsTableLike を選択→「実行」

※「開発」タブが表示されていない場合は、
「ファイル」→「オプション」→「リボンのユーザー設定」→「開発」にチェックを入れてください。

コードの中身をやさしく解説

ここからは、先ほどのコードが何をしているのかを、一行ずつ見ていきます。

Sub ~ End Sub:マクロの「はじまり」と「おわり」

Sub FormatAsTableLike()
    …
End Sub
  • Sub …… マクロ(処理のかたまり)の始まり
  • FormatAsTableLike …… マクロの名前(好きな名前でOK)
  • End Sub …… マクロの終わり

この「名前」を使って、マクロを選んで実行します。

With Selection ~ End With:選択範囲にまとめて命令

With Selection
    …
End With
  • Selection …… 今、Excelで選んでいるセル範囲
  • With ~ End With ……「Selection に対して、この中の命令をまとめて実行してね」という意味

ここでは「選択したセル範囲」に対して、枠線をつける色をつけるといった設定をまとめて行っています。

枠線の設定:.Borders

.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
  • .Borders.LineStyle = xlContinuous
    → 枠線の「線の種類」を「実線」にします。
  • .Borders.Weight = xlThin
    → 枠線の「太さ」を「細い線」にします。

ここを変えることで、太線にしたり、点線にしたりもできます。

背景色の設定:.Interior.Color

.Interior.Color = RGB(240, 248, 255)
  • .Interior …… 「セルの中身(背景)」の設定
  • Color …… 色
  • RGB(赤, 緑, 青) …… 色を決めるための数字

RGB(240, 248, 255) は、薄い水色です。
ここを変えることで、好きな色の「表」にできます。

自分好みのデザインに変えてみよう(応用編)

同じコードでも、数値やプロパティ(設定項目)を変えることで、見た目を自分好みにできます。

背景色を変える例

' 薄い黄色
.Interior.Color = RGB(255, 255, 224)

' 薄いグレー
.Interior.Color = RGB(242, 242, 242)

よく使う色は、コメントとしてメモしておくと便利です。

枠線を太めにして、見出し行を強調する例

見出し行(1行目)だけデザインを変えたい場合の例です。

Sub FormatAsTableWithHeader()

    Dim rng As Range

    ' 選択範囲を変数rngに入れる
    Set rng = Selection

    With rng
        ' 全体の枠線と背景色
        .Borders.LineStyle = xlContinuous
        .Borders.Weight = xlThin
        .Interior.Color = RGB(240, 248, 255)
    End With

    ' 1行目(見出し)だけ、少し濃い色+太線にする
    With rng.Rows(1)
        .Font.Bold = True                    ' 文字を太字に
        .Interior.Color = RGB(221, 235, 247) ' 背景を少し濃いめの色に
        .Borders.Weight = xlMedium           ' 枠線を太めに
    End With

End Sub

このように、「範囲全体」+「特定の行(Rows)」を組み合わせることで、
いわゆる「見出し付きの表」のような見た目になります。

よくあるつまずきポイントと対処法

① 何も起こらない…と思ったら、セル範囲を選択していない

このマクロは「Selection(いま選択している範囲)」に対して処理をします。
そのため、実行する前に必ずセル範囲をドラッグして選んでおく必要があります。

② マクロが見つからない/実行できない

  • ブックを「.xlsm(マクロ有効ブック)」で保存していない
  • VBAコードを「個人用マクロブック」など別のブックに書いている
  • 「開発」タブが非表示のままになっている

特に多いのは、「.xlsx」のまま保存していてマクロが消えてしまうパターンです。

③ 色がイメージと違う

RGB(赤, 緑, 青)の値によって色が変わります。
もしピンと来ない場合は、一度手動でセルに色を塗り、その色をVBAで取得する方法もあります。

' 選択中のセルの色をイミディエイトウィンドウに出力する例
Sub ShowColor()
    Debug.Print Selection.Interior.Color
End Sub

表示された数字(カラーコード)を .Interior.Color = その数値 に設定すると、
手動で選んだ色と同じ色をVBAでも使えるようになります。

まとめ:まずは「選択範囲を整える」マクロから慣れていこう

本記事では、「選択したセル範囲を一瞬で表っぽく整える」Excel VBAコードを、初心者向けに解説しました。

今回のポイント

  • Selection(選択範囲)に対して書式をまとめて設定できる
  • Borders で枠線、Interior で背景色を設定できる
  • RGB を変えることで、自分好みの色にカスタマイズできる
  • 見出し行だけデザインを変えるなど、少しずつ応用していける

「VBAは難しそう…」と感じている方も、
まずは今回のような「見た目がすぐに変わるマクロ」から試してみると、楽しみながら慣れていけます。

今後は、この「表っぽく整えるマクロ」と、他の自動処理(入力チェック・PDF保存など)を組み合わせることで、
さらに実務で使える便利ツールに発展させることもできます。

「このコードを、こんな用途にも使ってみたい!」というご要望があれば、ぜひコメントで教えてください。

コメント

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