ExcelVBAで罫線を引くには?罫線を自動で引く別の方法もお伝えします

Excel
この記事は約7分で読めます。

ExcelVBAで罫線を設定する方法をお伝えします。

そのほか後半では、VBAを使わずにExcelの機能で罫線を自動で引く設定について説明します。

 

セル範囲に格子状に実線を引く

 一番使用すると思われる、セルの外枠に実線を引くコードは以下のように書きます。

Range(“A1:D5”).Borders.LineStyle = xlContinuous

Rangeで罫線を引きたいセルの範囲を指定します。Rangeオブジェクトに対して、Borders.LineStyleに線のスタイル(実線)を設定します。

 

Rangeについて詳しくはこちらにあります↓

VBAのセル指定方法。CellsとRangeどちらを使えばいい?
VBAを使い始めたころ、セルの値の操作を行うためにCellsとRangeのどちらでセルの指定をすればいいのか曖昧でした。   今は、CellsとRangeのどちらを使用すればいいか迷いなくコードを記述できています。 それは、CellsとRa...

オブジェクトについてはこちらにあります↓

VBAのオブジェクトとは?オブジェクト、プロパティ、メソッドの使い方
VBAについて調べていると「オブジェクト」という単語を良く目にすると思います。当たり前のように登場するこの「オブジェクト」とは、どういうものかお伝えします。 オブジェクトとは  オブジェクトとは、VBAでの操作対象のことです。  VBAで操...

 

エディターにコードを追加し、実行してみます。

Rangeで指定したセルの範囲に罫線が設定されます。

エディターについて詳しくはこちらにあります↓

VBAとは?マクロとの違いやVBA初期導入まで
VBA(Visual Basic for Applications)は、ExcelやWord、Accessといった、Microsoft Officeで使用するプログラミング言語です。 VBAはExcel内のデータ集計や、分析、SUMやAVE...

 

 

線スタイルの設定

 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の方がうまく実現できるので、使いやすい方法を選んでいただければと思います。