ExcelVBAで罫線を設定する方法をお伝えします。
そのほか後半では、VBAを使わずにExcelの機能で罫線を自動で引く設定について説明します。
セル範囲に格子状に実線を引く
一番使用すると思われる、セルの外枠に実線を引くコードは以下のように書きます。
Range(“A1:D5”).Borders.LineStyle = xlContinuous
Rangeで罫線を引きたいセルの範囲を指定します。Rangeオブジェクトに対して、Borders.LineStyleに線のスタイル(実線)を設定します。


エディターにコードを追加し、実行してみます。
Rangeで指定したセルの範囲に罫線が設定されます。

線スタイルの設定
LineStyleプロパティに設定している値は、線のスタイルです。
以下は主な線スタイルの例です。
xlContinuous | 実線 |
xlDash | 破線 |
xlDot | 点線 |
xlDouble | 2本線 |
xlLineStyleNone | 線なし |
このほかの線スタイルについては以下にあります↓
XlLineStyle 列挙 (Excel) | Microsoft Learn
罫線を引く位置の指定
セルの外枠のどの一辺に罫線を引くかは、Bordersに引数を設定することで指定できます。
辺で指定
上罫線を引く(実線だと見にくいので2本線指定)
Range("A1").Borders(xlEdgeTop).LineStyle = xlDouble
右罫線を引く
Range("A1").Borders(xlEdgeRight).LineStyle = xlContinuous
左罫線を引く(実線だと見にくいので2本線指定)
Range("A1").Borders(xlEdgeLeft).LineStyle = xlDouble
下罫線を引く
Range("A1").Borders(xlEdgeBottom).LineStyle = xlContinuous
その他の罫線
左下から右上に斜線を引く
Range("A1").Borders(xlDiagonalUp).LineStyle = xlContinuous
左上から右下に斜線を引く
Range("A1").Borders(xlDiagonalDown).LineStyle = xlContinuous
指定したセル範囲の内側に横罫線を引く
Range("A1:D5").Borders(xlInsideHorizontal).LineStyle = xlDouble
指定したセル範囲の内側に縦罫線を引く
Range("A1:D5").Borders(xlInsideVertical).LineStyle = xlDouble
罫線の色を設定
罫線の色は、ColorIndexもしくはColorで設定できます。
カラーインデックスで指定
ColorIndexでカラーインデックスを指定することで、罫線の色を設定できます。
Sub test()
Range("A1:D5").Borders(xlInsideVertical).LineStyle = xlDouble
Range("A1:D5").Borders(xlInsideVertical).ColorIndex = 3
End Sub
上記コードを実行すると以下の結果となります。
カラーインデックス番号は、3が赤、4が緑、5が青、6が黄色です。
そのほかの番号については、以下が参考になります。
ColorIndex プロパティ (Excel グラフ) | Microsoft Learn
RGB値で指定
ColorではRGB値の指定で色を設定します。
Sub test()
Range("A1:D5").Borders(xlInsideVertical).LineStyle = xlDouble
Range("A1:D5").Borders(xlInsideVertical).Color = RGB(255, 0, 0)
End Sub
RGBでのカラー指定方法について詳しくは以下が参考になります。
RGB 関数 (Visual Basic for Applications) | Microsoft Learn
罫線の太さを設定
Weightで罫線の太さを設定できます。
Sub test()
Range("A1:D5").Borders(xlInsideVertical).LineStyle = xlContinuous
Range("A1:D5").Borders(xlInsideVertical).Weight = xlMedium
End Sub
上記コードを実行すると、以下の結果となります。
太さの指定は以下の情報を設定します。
xlHairline | 極細 |
xlThin | 細 |
xlMedium | 中 |
xlThick | 太 |
セルに罫線を自動で引く他の方法
VBAではなく、別の方法としてExcelから自動で罫線を設定する方法もあります。
以下のような表に、データを追加するたびに罫線を自動で引くやり方をお伝えします。
罫線を自動設定にしていない場合、1行データを追加するたびに罫線を引くか、
または、最初に表を作成したときに、ある程度罫線を引いておくかだと思います。
データ追加毎に罫線を引くのは面倒だし、あらかじめ罫線を引いておくと何となく見た目が悪いです。(そのままスクショや印刷したときの空白行の見た目が悪いなど)
条件付き書式から罫線の自動設定を行う
データがセルに入力された箇所だけ自動で罫線を引くように設定していきます。
表の2行目から300行目くらいまでドラッグし、[条件付き書式]の[新しいルール]をクリックします。
[数式を使用して、書式設定するセルを決定]を選択し、ルールの内容に、
=$A2<>””
を入力します。右下の[書式]をクリックします。
[罫線]タブで[外枠(O)]を選択し、[OK]をクリックします。
前画面に戻ったら、[OK]をクリックすれば設定完了です。
=$A2<>””
は、A列のセルの値が、空白(“”)意外(<>)なら、選択範囲に罫線を引くという内容です。
試しに、データが入力されていない8行目のA列に値を入れてみます。
Enterを押すと、データ追加した8行目に罫線が自動で設定されます。
もし、300行よりも多く自動設定したい場合は、[条件付き書式]の[ルールの管理]から
作成したルールの適用先の[300]の部分を任意の行数に変更してください。
まとめ
単純な罫線の自動設定であれば、VBAで罫線を引くコードを書くより、条件付き書式での設定の方が簡単です。
ただ、罫線の設定をVBAで行っていると思っていると、そのコード記述部分が見つからず焦るので、コメントなどで記載しておくと後々助かると思います。
もっと複雑な罫線設定の場合は、VBAの方がうまく実現できるので、使いやすい方法を選んでいただければと思います。