マクロで罫線を引く方法のご紹介です。
マクロで罫線を引く方法
罫線(実線)を引く
対象.borders.linestyle = xlContinuous
対象.borders.linestyle = xlContinuous
![xl1](https://sunagitsune.com/wp-content/uploads/2019/12/xl1.jpg)
マクロを開き、Range(“A1:C3”).Borders.LineStyle = xlContinuous(A1~C3の書式設定(罫線)に、実線の罫線を設定する)と記述します。
![xl2](https://sunagitsune.com/wp-content/uploads/2019/12/xl2.jpg)
これを何もないセルA1~C3に対して実行すると……。
![xl3](https://sunagitsune.com/wp-content/uploads/2019/12/xl3.jpg)
「格子」の罫線が描かれました。
セルの中で位置を指定して罫線を引く
![anotherlinestyle1](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle1.jpg)
Bordersプロパティの後に()を入れて位置を記入することで、罫線を引く箇所を指定することができます(引数を指定しない場合、上記のように「上下左右」を対象とします)。
引数はそれぞれ定数で指定することができ、たとえばRange(“B2”).Borders(xlEdgeTop).LineStyle = xlContinuousと記入すれば、
引数はそれぞれ定数で指定することができ、たとえばRange(“B2”).Borders(xlEdgeTop).LineStyle = xlContinuousと記入すれば、
![anotherlinestyle2](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle2.jpg)
指定したセルに対して上側だけ罫線が引かれます。
![anotherlinestyle3](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle3.jpg)
同様にBorders(xlEdgeBottom)で下線、
![anotherlinestyle4](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle4.jpg)
Borders(xlEdgeLeft)で左線、
![anotherlinestyle5](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle5.jpg)
Borders(xlEdgeRight)で右線を引くことができます。
![anotherlinestyle12](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle12.jpg)
ちなみに、B2~D4を指定して上罫線を引くと、
![anotherlinestyle13](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle13.jpg)
B2~D2だけ上線が引かれます。これは仕様です。
![anotherlinestyle14](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle14.jpg)
マクロ抜きで複数範囲を選択し、
![anotherlinestyle15](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle15.jpg)
上線を引いてみるとわかりやすいんですが、
![anotherlinestyle16](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle16.jpg)
複数範囲を選択して上線を引くと、一番上側(外側)の枠にだけ罫線が適用されます。これは下も右も左も同じです。
![anotherlinestyle6](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle6-650x165.jpg)
今度は選択範囲を広げて、Range(“B2:D8”).Borders(xlInsideHorizontal).LineStyle = xlContinuousを指定すると、
![anotherlinestyle7](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle7.jpg)
内側の、選択されたセルとセルの間にだけ横線が引かれます(単独セル、横一列のセルに使った場合は何も起きない)。
![anotherlinestyle8](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle8.jpg)
同様にBorders(xlInsideVertical)を指定すると、選択範囲のセルの間に縦線が引かれます(単独セル、縦一列のセルに使った場合は何も起きない)。このふたつは外枠には線が引かれません。
![anotherlinestyle9](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle9.jpg)
Range(“B2:D8”).Borders(xlDiagonalDown).LineStyle = xlContinuousと指定すれば、
![anotherlinestyle10](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle10.jpg)
このように右下に流れる斜線が引けます。
![anotherlinestyle11](https://sunagitsune.com/wp-content/uploads/2019/12/anotherlinestyle11.jpg)
Borders(xlDiagonalUp)を指定すると、左下に流れる斜線となります。
Bordersプロパティで使える位置定数まとめ(xlBordersIndex定数)
上側:xlEdgeTop
下側:xlEdgeBottom
左側:xlEdgeLeft
右側:xlEdgeRight
セル境界水平:xlInsideHorizontal
セル境界垂直:xlInsideVertical
右下がりの斜線:xlDiagonalDown
右上がりの斜線:xlDiagonalUp
上側:xlEdgeTop
下側:xlEdgeBottom
左側:xlEdgeLeft
右側:xlEdgeRight
セル境界水平:xlInsideHorizontal
セル境界垂直:xlInsideVertical
右下がりの斜線:xlDiagonalDown
右上がりの斜線:xlDiagonalUp
線の種類を変更する
罫線を消す方法
罫線を消したい場合は、値にxllinestylenoneを指定します。
罫線(実線)を消す
対象.borders.linestyle = xlLineStyleNone
対象.borders.linestyle = xlLineStyleNone
![xl4](https://sunagitsune.com/wp-content/uploads/2019/12/xl4.jpg)
今度は、Range(“A1:C3”).Borders.LineStyle = xlLineStyleNone(A1~A3の周囲の罫線を消す)と記述します。
![xl3](https://sunagitsune.com/wp-content/uploads/2019/12/xl3.jpg)
実線で囲まれたセルA1~C3に対してこのマクロを実行すると……。。
![xl5](https://sunagitsune.com/wp-content/uploads/2019/12/xl5.jpg)
セルの周囲の実線が消えました。線を消すということは、実際には線の種類を変更しており、xlContinuousやxlLineStyleNone以外の定数を指定することで線の種類を変更できます。
なお、罫線をクリアする場合、斜線は別に指定する必要があります。
![](https://sunagitsune.com/wp-content/uploads/2020/06/pencil-791107_1280-160x90.jpg)
ExcelVBA(マクロ)でワークシートの罫線をすべてクリアする方法/Borders.LineStyleプロパティの使い方
シート状の罫線を全てクリアする方法のご紹介です。
手動でやるのと同様、斜線はちょっと扱いが別になっています。
使用可能な線の種類
指定できる定数は、次の通りとなります。
LineStyleプロパティで使える定数まとめ(xlLineStyle定数)
実線:xlContinuous
破線:xlDash
点線:xlDot
一点鎖線:xlDashDot
二点鎖線:xlDashDotDot
斜め破線:xlSlantDashDot
二重線:xlDouble
線なし:xlLineStyleNone(Falseでも可)
実線:xlContinuous
破線:xlDash
点線:xlDot
一点鎖線:xlDashDot
二点鎖線:xlDashDotDot
斜め破線:xlSlantDashDot
二重線:xlDouble
線なし:xlLineStyleNone(Falseでも可)
![linestyleb1](https://sunagitsune.com/wp-content/uploads/2019/12/linestyleb1.jpg)
B2~D4に対して、色んな線の種類を引いてみましょう。画像のxlContinuous(実線)の部分を書き変えていきます。
![linestyleb2](https://sunagitsune.com/wp-content/uploads/2019/12/linestyleb2.jpg)
xlDash(破線)、
![linestyleb3](https://sunagitsune.com/wp-content/uploads/2019/12/linestyleb3.jpg)
xlDot(点線)
![linestyleb4](https://sunagitsune.com/wp-content/uploads/2019/12/linestyleb4.jpg)
xlDashDot(一点鎖線)、
![linestyleb5](https://sunagitsune.com/wp-content/uploads/2019/12/linestyleb5.jpg)
xlDashDotDot(二点鎖線)、
![linestyleb6](https://sunagitsune.com/wp-content/uploads/2019/12/linestyleb6.jpg)
xlSlantDashDot(斜め破線)、
![linestyleb7](https://sunagitsune.com/wp-content/uploads/2019/12/linestyleb7.jpg)
そしてxlDouble(二重線)、となります。先述の通り、線を消したい場合はxlLineStyleNoneを指定します。
線の太さについて
線の太さの変更にはWeightプロパティを用います。下記記事で解説しています。
![](https://sunagitsune.com/wp-content/uploads/2020/06/crossfit-534615_1280-160x90.jpg)
ExcelVBA(マクロ)で罫線の太さを変更する方法/Borders.Weightプロパティの使い方およびLineStyleとの相性
マクロで罫線を作る時、線の種類以外に線の太さも指定することができます。ただし、LineStyleの設定によっては無効となる場合もあり、その相性についても記述しています。
LineStyleとWeightを同時に指定すると、どちらかが無効化されることがあります。その点についても説明していますので、実際に適用する前に参照するなり、サンプルコード動かしてみるなりすることをおすすめします。
マクロで罫線を引く方法については以上です。
![](https://sunagitsune.com/wp-content/uploads/2021/03/people-2590655_1280-160x90.jpg)
Excel(エクセル):罫線
罫線の引き方、編集、設定方法まとめです。
Excel操作で罫線
基本の罫線の作り方、引き方、削除方法です。
基本その2、罫線の種類の変更方法です。セルの一部だけに線を引く方法、セルの書式設定で罫線を引く方法につ...
![](https://sunagitsune.com/wp-content/uploads/2018/12/mathematics-1509559_1280-160x90.jpg)
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
コメント