
毎回毎回、決まった表を作るために罫線を引くんだけど、毎回結構めんどう…。
マクロでササっと罫線を引くことはできないの?

なるほど…。
罫線を引く順番を間違えたりすると、上書きされてイライラしますよね…。
では今回は、「VBAマクロで罫線を引く方法」をVBAマクロ歴3年の私が、
できるだけわかりやすく解説いたします。
VBAマクロでエクセルに罫線を引く方法
「Borders」を使います。
まずは実行見本をどうぞ。
実行見本
ひとまず全コードと実行結果をご覧ください。
解説は後ほど行います。
全コード
Sub 罫線を引く()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
With Range("B2").Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub
実行結果

解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
プロシージャの作成
Sub 罫線を引く()
End Sub
プロシージャなど、マクロの基礎は下記記事でわかりやすく解説しております。
コードだけではなく、開発タブの表示からマクロの保存まで知りたい方はご参考ください。
変数の宣言
Dim ws As Worksheet
上記コードにて、以降使用する変数を宣言しています。
変数や宣言についての詳しい解説は、下記記事をご参考ください。
シートの取得
Set ws = ThisWorkbook.Sheets("Sheet1")
上記コードにて、罫線を引くシートを取得しています。
今回は「Sheet1」を取得していますが、シート名に応じて変更してください。
罫線を引く
With Range("B2").Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
上記コードにて「B2セル」に罫線を引いています。
withを使って構文を省略しておりますが、詳しくは下記記事をご参考ください。
今回の設定は以下のとおりです。
- LineStyle(線の種類):xlContinuous(実線)
- Weight(線の太さ):xlThin(細線)
- ColorIndex(色):xlAutomatic(自動・黒)
罫線の種類については次項(いろいろな罫線の設定)で詳しく紹介いたします。
(“B2”)ではなく(“A1:E10”)と記述することで、A1~E10の範囲に罫線を引くこともできます。
マクロが完成したら、さっそく実行してみましょう。

シート内に作成した自作のボタンを押すことでマクロを実行させることも可能です。
ボタンの作り方は、下記記事でわかりやすく解説しております。
いろいろな罫線の設定
罫線を引く場合、「罫線の位置」「線の種類」「線の太さ」「線の色」を指定することができます。
罫線の位置
With Range("B2").Borders(xlEdgeTop)
上記のとおり、最後に()を追加することで、罫線を引く位置を指定することができます。
今回は「xlEdgeTop:上辺」を指定しています。
これで上辺のみに罫線が適用され、他の辺には適用されません。

- 指定なし:四辺すべてに罫線を引く
- xlEdgeTop:上辺
- xlEdgeBottom:下辺
- xlEdgeLeft:左辺
- xlEdgeRight:右辺
線の種類
「LineStyle」で設定します。
(例:LineStyle = xlContinuous)
- xlContinuous:実線
- xlDash:破線(長い点線-----)
- xlDot:点線(短い点線・・・・・)
- xlDashDot:一点鎖線(-・-・-)
- xlDashDotDot:二点鎖線(-・・-・・-)
- xlDouble:二重線(=====)
- xlLineStyleNone:罫線なし
※「xlLineStyleNone」を指定することで、罫線が削除されます。
線の太さ
「Weight」で設定します。
(例:Weight = xlThin)
- xlHairline:極細線
- xlThin:細線
- xlMedium:中太線
- xlThick:太線
線の色
「ColorIndex」で設定します。
(例:ColorIndex = xlAutomatic)
- xlAutomatic:自動(黒)
- 1:黒(エクセルの標準カラーパレット)
- 2:白(〃)
- 3:赤(〃)
- 4:緑(〃)
- 5:青(〃)
- 6:黄(〃)
「ColorIndex」ではなく「Color」に色を指定することで、好みの色を設定することができます。
「例:Color = RGB(255, 0, 0)」
RGBについては下記記事をご参考ください。
うまく動作しないときの対処法
エラーが発生する
コンパイルエラー・実行時エラー
コードに問題がある場合が多いです。
「”」や()など、2つセットの記号が片方だけになっていないかなど、コードを再確認しましょう。
セル名を「”」で囲っていない場合でもエラーが発生します。
警告表示

上記の表示が出た場合は、マクロが無効になっています。
エクセルに表示された「コンテンツの有効化」をクリックするか、下記記事を参考にセキュリティ設定を変更してください。
最後に
VBAマクロでエクセルに罫線を引く方法を解説いたしました。
当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!