【VBAリファレンス|実務向け】簡単に格子罫線/外枠罫線を引く(Bordersプロパティ/BorderAroundメソッド)|Excel VBA

スポンサーリンク

導入:なぜマクロ記録のコードをそのまま使ってはいけないのか

Excel VBAで罫線を引こうと「マクロの記録」を使うと、驚くほど長大なコードが生成されることに気づいたことはありませんか?記録されたコードは、セルの上下左右から内側の線まで、一つひとつ丁寧に命令を書き出すため、非常に冗長でメンテナンスもしにくいものです。実務では、もっとスマートに、たった数行で罫線を引く方法が推奨されます。今回は、BordersプロパティとBorderAroundメソッドを使って、コードを劇的に短縮するテクニックを解説します。

基礎知識:罫線を制御する仕組み

Excel VBAにおける罫線操作には、主に2つのアプローチがあります。
1. Bordersプロパティ:セル範囲内の「格子」や「内側の線」を一括で設定する際に使います。BordersコレクションのLineStyleプロパティを指定するだけで、範囲内のすべてのセルに線を引くことができます。
2. BorderAroundメソッド:セル範囲の「外枠」のみを操作する専用のメソッドです。外枠の太さや色を一括で指定できるため、表の仕上げに最適です。

これらを使い分けることで、複雑な表作成もわずかなコード量で完結させることができます。

実装・解決策:最短コードの書き方

Bordersプロパティは、引数を指定しないと「セルの四辺および内側すべて」を指します。また、LineStyleプロパティに「True」を指定するだけで、既定の細い罫線を引くことが可能です。同様に、BorderAroundメソッドを使えば、外枠だけの装飾も一行で指定できます。

サンプルプログラム:実務で使えるコード例

以下のコードをVBAエディタにコピーして試してみてください。

Sub ApplyBorderTechnique()
‘ 対象範囲をセット(例:A1からC5まで)
Dim rng As Range
Set rng = Range(“A1:C5”)

‘ 1. 格子罫線を引く(たった1行)
‘ LineStyleにTrueを指定すると、既定の細い線が引かれます
rng.Borders.LineStyle = True

‘ 2. 外枠を太罫線にする
‘ BorderAroundメソッドでWeight引数にxlMediumを指定
rng.BorderAround Weight:=xlMedium

‘ 【参考】罫線をすべて消す方法
‘ rng.Borders.LineStyle = False

MsgBox “罫線の設定が完了しました。”
End Sub

応用・注意点:現場で役立つポイント

1. 定数の活用:LineStyleには「xlContinuous(実線)」などの定数も使えますが、True/Falseで代用できる点は覚えておくと便利です。
2. BorderAroundの引数:BorderAroundメソッドの引数「ThemeColor」などはバージョンによって挙動が異なる場合があります。基本的にはWeight(太さ)やLineStyle(線種)の指定に絞るのが、エラーを避けるコツです。
3. コードの可読性:マクロ記録のコードをそのまま貼り付けると、修正時にどこを直せばよいか分からなくなります。今回紹介したシンプルな書き方であれば、「表の見た目を変えたい」という依頼が来たときにも、Weightの値を変更するだけで即座に対応可能です。

ぜひ、日々の業務効率化にこのテクニックを活用してください。

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