マクロで表のスタイルを設定

マクロ講座63回 
範囲を探して簡単に表をデザインする

簡単に表スタイルを設定 Excel2013 マクロ講座 63回

範囲を探して表をデザインする

Excelの表デザインをクールにしたい!
Excelで作ったデフォルトの表は、なんとも垢抜けないので、そのまま使う訳にはいかないと感じている人も多いのではないでしょうか。
今回は、管理人が良く使う表の設定マクロを紹介します。

(サンプルファイルは、こちらから マクロ63回サンプルデータ

クールな表デザインをと考えると時間がかかる

最初は、ただの枠にデータを入力してるだけでもいいですが、それを印刷したり、プレゼンテーションに使ったりするとなると、 見やすいデザインが要求されますね。そこでまずマクロで無難なデザインを設定してしまおうというわけです。
そこで、1.タイトルはブルー系にして、上罫線と下罫線は、中太にする
2.表の罫線は、一応入れるけど、主張し過ぎない程度のグレーにする
という2点に絞って表をデザインするマクロを作ることにしました。
表のスタイルを設定マクロ1
上図が、マクロ実行前とマクロ実行後です。
仮にこの色とデザインのままで、シマシマにしたければ、下図のようにExcel2010マクロ講座24回のRGB関数を使って 2色のシマ模様マクロなどを実行してください。
2色がしつこいと感じる時は、1色にしましょう。「過ぎたるは及ばざるが如し」ですから。
表のスタイルを設定マクロ2

表の範囲を探して表デザイン

作成したマクロコードです。今回のポイントは、条件に当てはまるセルを検索するという点でしょう。
それには、Findメソッドを使います。Findメソッドで探したセルを Set ステートメントを使ってオブジェクト変数に代入します。
セルに入力されている内容を探すのではなく入力済みのセルという意味でワイルドカードを使っています。(3行目)
Sub 表デザイン1範囲を探して罫線()
    Dim vRng As Range
    Set vRng = Cells.Find(What:="*")
    If vRng Is Nothing Then Exit Sub
    With vRng.CurrentRegion
        .Borders.LineStyle = xlContinuous
        .Borders.ColorIndex = 16 'RGB(150,150,150)
    End With
    With vRng.CurrentRegion.Resize(1)
        .Borders(xlEdgeTop).Weight = xlMedium
        .Borders(xlEdgeBottom).Weight = xlMedium
        .Interior.ColorIndex = 37
    End With
End Sub
    
サンプルのマクロでは、表の範囲を探してその範囲に対して罫線を引きます。 ただし、入力済みのセルがない、空のシートで実行するとエラーになりますので、エラー回避でプログラムを抜けるコードを入れてあります。 (4行目)
Findメソッドは、指定された範囲から情報を検索し、目的の情報が見つかった最初のセルを表す Range オブジェクトを返します。 今回使う引数は、省略ができない"What"だけです。
実は、引数はたくさんありますが、それらは検索と置換ダイアログボックスでセルを検索するときに指定する内容とほぼ同じです。 Findメソッドは便利なので、またの機会に詳しく紹介しましょう。
FINDメソッドの構文
以下の罫線だけの表に対してマクロを実行します。
表のスタイルを設定マクロ4
シンプルな表デザインが適用されます。
表のスタイルを設定マクロ5
このコードはそのまま使っても良いですが、7行目と12行目のColorIndexをお好みの色に変更すると尚良いと思います。