ExcelVBA(マクロ)でセルに罫線を引く・消す方法/Borders.LineStyleプロパティの使い方

chess IT

マクロで罫線を引く方法のご紹介です。

Advertisements

マクロで罫線を引く方法

罫線(実線)を引く
対象.borders.linestyle = xlContinuous
xl1
マクロを開き、Range(“A1:C3”).Borders.LineStyle = xlContinuousA1~C3書式設定(罫線)に、実線罫線を設定すると記述します。
xl2
これを何もないセルA1~C3に対して実行すると……。
xl3
「格子」の罫線が描かれました。

セルの中で位置を指定して罫線を引く

anotherlinestyle1
Bordersプロパティの後に()を入れて位置を記入することで、罫線を引く箇所を指定することができます(引数を指定しない場合、上記のように「上下左右」を対象とします)。
引数はそれぞれ定数で指定することができ、たとえばRange(“B2”).Borders(xlEdgeTop).LineStyle = xlContinuousと記入すれば、
anotherlinestyle2
指定したセルに対して上側だけ罫線が引かれます。
anotherlinestyle3
同様にBorders(xlEdgeBottom)で下線、
anotherlinestyle4
Borders(xlEdgeLeft)で左線、
anotherlinestyle5
Borders(xlEdgeRight)で右線を引くことができます。
anotherlinestyle12
ちなみに、B2~D4を指定して上罫線を引くと、
anotherlinestyle13
B2~D2だけ上線が引かれます。これは仕様です。
anotherlinestyle14
マクロ抜きで複数範囲を選択し、
anotherlinestyle15
上線を引いてみるとわかりやすいんですが、
anotherlinestyle16
複数範囲を選択して上線を引くと、一番上側(外側)の枠にだけ罫線が適用されます。これは下も右も左も同じです。
anotherlinestyle6
今度は選択範囲を広げて、Range(“B2:D8”).Borders(xlInsideHorizontal).LineStyle = xlContinuousを指定すると、
anotherlinestyle7
内側の、選択されたセルとセルの間にだけ横線が引かれます(単独セル、横一列のセルに使った場合は何も起きない)。
anotherlinestyle8
同様にBorders(xlInsideVertical)を指定すると、選択範囲のセルの間に縦線が引かれます(単独セル、縦一列のセルに使った場合は何も起きない)。このふたつは外枠には線が引かれません
anotherlinestyle9
Range(“B2:D8”).Borders(xlDiagonalDown).LineStyle = xlContinuousと指定すれば、
anotherlinestyle10
このように右下に流れる斜線が引けます。
anotherlinestyle11
Borders(xlDiagonalUp)を指定すると、左下に流れる斜線となります。
Bordersプロパティで使える位置定数まとめ(xlBordersIndex定数)
上側:xlEdgeTop
下側:xlEdgeBottom
左側:xlEdgeLeft
右側:xlEdgeRight
セル境界水平:xlInsideHorizontal
セル境界垂直:xlInsideVertical
右下がりの斜線:xlDiagonalDown
右上がりの斜線:xlDiagonalUp

線の種類を変更する

罫線を消す方法

罫線を消したい場合は、値にxllinestylenoneを指定します。

罫線(実線)を消す
対象.borders.linestyle = xlLineStyleNone
xl4
今度は、Range(“A1:C3”).Borders.LineStyle = xlLineStyleNoneA1~A3周囲罫線消すと記述します。
xl3
実線で囲まれたセルA1~C3に対してこのマクロを実行すると……。。
xl5
セルの周囲の実線が消えました。線を消すということは、実際には線の種類を変更しており、xlContinuousやxlLineStyleNone以外の定数を指定することで線の種類を変更できます。

なお、罫線をクリアする場合、斜線は別に指定する必要があります。

ExcelVBA(マクロ)でワークシートの罫線をすべてクリアする方法/Borders.LineStyleプロパティの使い方
シート状の罫線を全てクリアする方法のご紹介です。 手動でやるのと同様、斜線はちょっと扱いが別になっています。

使用可能な線の種類

指定できる定数は、次の通りとなります。

LineStyleプロパティで使える定数まとめ(xlLineStyle定数)
実線:xlContinuous
破線:xlDash
点線:xlDot
一点鎖線:xlDashDot
二点鎖線:xlDashDotDot
斜め破線:xlSlantDashDot
二重線:xlDouble
線なし:xlLineStyleNoneFalseでも可)
linestyleb1
B2~D4に対して、色んな線の種類を引いてみましょう。画像のxlContinuous(実線)の部分を書き変えていきます。
linestyleb2
xlDash(破線)、
linestyleb3
xlDot(点線)
linestyleb4
xlDashDot(一点鎖線)、
linestyleb5
xlDashDotDot(二点鎖線)、
linestyleb6
xlSlantDashDot(斜め破線)、
linestyleb7
そしてxlDouble(二重線)、となります。先述の通り、線を消したい場合はxlLineStyleNoneを指定します。

線の太さについて

線の太さの変更にはWeightプロパティを用います。下記記事で解説しています。

ExcelVBA(マクロ)で罫線の太さを変更する方法/Borders.Weightプロパティの使い方およびLineStyleとの相性
マクロで罫線を作る時、線の種類以外に線の太さも指定することができます。ただし、LineStyleの設定によっては無効となる場合もあり、その相性についても記述しています。

LineStyleとWeightを同時に指定すると、どちらかが無効化されることがあります。その点についても説明していますので、実際に適用する前に参照するなり、サンプルコード動かしてみるなりすることをおすすめします。
マクロで罫線を引く方法については以上です。

やりたいことから方法を探すエクセルExcel操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント