表に罫線を引く マクロ

表に罫線を引く 連続した処理 Excel2010 マクロ講座 21回

表に罫線を引く 表のスタイルを作成

プログラムを作成するには、「連続した処理」、「判断」、「繰り返し」という3つのパターンを組み合わせて作成します。
今回は、特に「連続した処理」をマクロで考えてみましょう。
表を作成する時に、枠を罫線で囲いますが、それを連続処理としてプログラムにしましょう。
(サンプルファイルは、こちらから 2010マクロ講座21回サンプルデータ

セル範囲に罫線を引く

次の表で、サンプルマクロを実行すると、上から順番に連続した処理が行われます。
罫線を引くには、まず、Borders プロパティで、Range オブジェクトのBordersコレクションオブジェクトを参照します。 Bordersには、アイテムという定数があるのですが、それを指定しない場合は、個々のセルを囲む4本の罫線を参照します。 下図には、列ラベルを入れる行だけセルの背景色を変更してあります。ここに罫線を引きます。
連続した処理マクロ1
以下のサンプルコードは、アイテムを指定しないので、個々のセルに対して同じ操作をしています。
Sub 範囲のセルに罫線()
    With Range("A2:D8").Borders
        .LineStyle = xlContinuous  '罫線の種類Value プロパティと同じ
        .Weight = xlMedium         '罫線の太さ
        .ColorIndex = 16           'カラーインデックスで色
    End With
End Sub
    
コードを実行すると、次のようになります。
連続した処理マクロ1
セル範囲をRange("A2:D8")と指定していますが、
With Range("A2:D8").Bordersを、
With Selection.Bordersとして、選択範囲Selectionを使っても、シートの選択範囲に対して罫線が実行されます。 汎用的に使えるので、1つ作っておくと便利です。
Sub 選択範囲のセルに罫線()
    With Selection.Borders
        .LineStyle = xlContinuous  '罫線の種類Value プロパティと同じ
        .Weight = xlMedium         '罫線の太さ
        .ColorIndex = 16           'カラーインデックスで色
    End With
End Sub
    
罫線の太さと色を指定しただけですが、ただ枠を囲っただけの表よりも見やすくなると思いませんか?

罫線を消去するマクロ

罫線を引いたら、今度は消去するコードも必要です。 セル範囲をRange("A2:D8")の罫線をすべて消去する場合は、
Sub 罫線消去マクロ_1()
    Range("A2:D8").CurrentRegion.Borders.LineStyle = xlNone
End Sub
    
選択範囲Selectionを使って消去する場合は、
Sub 選択範囲の罫線を消す()
  Selection.Borders.LineStyle = xlLineStyleNone
End Sub
    
xlNone と xlLineStyleNone は同じ意味で、罫線なしです。