ExcelVBA(マクロ)で罫線の太さを変更する方法/Borders.Weightプロパティの使い方およびLineStyleとの相性

crossfit IT

マクロで罫線を作る時、線の種類以外に線の太さも指定することができます。ただし、LineStyleの設定によっては無効となる場合もあり、その相性についても記述しています。

Advertisements

Borders.Weightプロパティの使い方

weight1
LineStyleプロパティを用いることで、セルに対してさまざまな種類の罫線を引くことができます。
まずはRange(“B2”).Borders.LineStyle = xlContinuousと記入し、B2セルに実線の格子を設定してみます。
weight2
格子の罫線が引かれました。
weight3
罫線は線の種類、位置の他に、太さも指定することができます。
たとえばRange(“B2”).Borders.Weight = xlHairlineと指定すると、
weight4
格子の線が極細になりました。細すぎて点線表示になってますが、拡大すると実線であることが確認できます。
weight5
いつもの線はxlThinという太さになります。
weight6
xlMediumで中程度の太さとなり、
weight7
xlThickで極太となります。
Bordersプロパティで使える線の太さ定数まとめ(xlBorderWeight定数)
極細:xlHairline
細線:xlThin
太線:xlMedium
極太:xlThick

WeightとLineStyleの相性

weight8
ちょっと実際にやってみましょう。
For Next文を使って、間隔を空けて4×8種類の線を引いてみます。
weight9
実行するとこんな感じになります。
weight10
では2、4、6、8行目にそれぞれ細い順から線種を割り当てていくとどうなるかというと、
weight11
こうなります。
画像が小さくて見づらければ、画像上で右クリック→「新しいタブで画像を開く」とかで元サイズで表示できます。
weight12
まず、線なしに対して太さを指定すると、自動的に実線が引かれることがわかります。
weight13
二重線は極太以外では無効化され、それ以外の線は極太では無効化されています。斜め破線は太線のみで使えるようです。
weight14
点線は細線のみ、極細では全ての線種が無効化されています。
このように、LineStyleとWeightの組み合わせによって、意図しない線が引かれることがあります。
weight15
もし線種と太さの適用を逆にして、線種を後に指定するようにすれば、
今度は線種を適用するために線の太さが勝手に変更されます。
こちらでは破線、一点鎖線、二点鎖線が細線と太線でのみ使えることが見て取れます。

線の太さ、種類、ついでに色をまとめて指定できるBorderAroundというメソッドもあるのですが、それは後日また書きます。

' vba
Dim i
For i = 2 To 8 Step 2' 線の種類
Range("B" & i).Borders.LineStyle = xlContinuous
Range("D" & i).Borders.LineStyle = xlDash
Range("F" & i).Borders.LineStyle = xlDot
Range("H" & i).Borders.LineStyle = xlDashDot
Range("J" & i).Borders.LineStyle = xlDashDotDot
Range("L" & i).Borders.LineStyle = xlSlantDashDot
Range("N" & i).Borders.LineStyle = xlDouble
Range("P" & i).Borders.LineStyle = xlLineStyleNone
Next
For i = 2 To 16 Step 2' 線の太さ
Cells(2, i).Borders.Weight = xlHairline
Cells(4, i).Borders.Weight = xlThin
Cells(6, i).Borders.Weight = xlMedium
Cells(8, i).Borders.Weight = xlThick
Next
やりたいことから方法を探すエクセルExcel操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント