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

crossfit IT

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

スポンサーリンク

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

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

WeightとLineStyleの相性

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

線の太さ、種類、ついでに色をまとめて指定できる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(エクセル):罫線
罫線の引き方、編集、設定方法まとめです。 Excel操作で罫線 基本の罫線の作り方、引き方、削除方法です。 基本その2、罫線の種類の変更方法です。セルの一部だけに線を引く方法、セルの書式設定で罫線を引く方法につ...
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント

モバイルバージョンを終了