VBAで罫線を設定する場合はプロパティの組み合わせに注意すること

VBAで罫線を指定する場合は想定通りの罫線が出ない場合があります。
仕様を把握して思い通りの罫線が引けるようにしましょう。

[ad01]

「セルの書式設定」での指定

なしを含めると14種類の選択が可能です。

VBAでの設定

BordersプロパティのLineStyleとWeightの組み合わせで指定します。

サンプル

よく見る実線の罫線の場合は以下のようになります。

Range("A1").Borders.LineStyle = xlContinuous
Range("A1").Borders.Weight = xlThin

設定値の種類

VBAで指定できる値はそれぞれ以下の通りです。

LineStyle

定数罫線の種類
xlContinuous1実線(細)
xlDash-4115破線
xlDashDot4一点鎖線
xlDashDotDot5二点鎖線
xlDot-4118点線
xlDouble-4119二重線
xlSlantDashDot13斜め斜線
xlLineStyleNone-4142無し

Weight

定数罫線の種類
xlHairline1極細
xlThin2
xlMedium-4138
xlThick4

LineStyleが8種、Weightが4種あります。
ここから単純に考えると8*4の32種類の指定が可能のように見えますが、実際は使用できない組み合わせがあります。

組み合わせ全パターン

以下のような仕様で補正されます。

  • 使用できない組み合わせを指定すると内部的に自動補正されます。
  • しかもLineStyleとWeightを指定する順序によって結果が変わります。
  • 原則、後に指定するものが優先されるようです。
  • 自動修正されない組み合わせは13種類となり、これが「セルの書式設定」で設定できる罫線の種類(なしを含まない)と同じになります。

全ての組み合わせは以下のようになります。

※1:修正値1はLineStyle→Weightの順に設定した場合の補正値

※2:修正値2はWeight→LineStyleの順に設定した場合の補正値

※3:修正値が空白は自動補正なし

LineStyle値Weight値LineStyle修正値1Weight修正値1LineStyle修正値2Weight修正値2
11    
12    
1-4138    
14    
-4115111-41152
-41152    
-4115-4138    
-4115414-41152
411142
42    
4-4138    
441442
511152
52    
5-4138    
541452
-4118111-41182
-41182    
-4118-41381-4138-41182
-4118414-41182
-4119111-41194
-4119212-41194
-4119-41381-4138-41194
-41194    
1311113-4138
1321213-4138
13-4138    
1341413-4138
-4142111-41422
-4142212  
-4142-41381-4138-41422
-4142414-41422

つまり

GUI・VBAどちらにしても描ける罫線の種類は14種類となります。
VBAで指定するときは正しい組み合わせを指定しないと意図した罫線が書けないことがありますのでマクロの記録で確かめながら指定しましょう。

コメント

タイトルとURLをコピーしました