Home » Excel VBA Rangeオブジェクト » 罫線・Borders » VBAで格子罫線を引く-Bordersコレクション

VBAで格子罫線を引く-Bordersコレクション

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

セルに罫線を引く操作をマクロ記録すると、読むのに一苦労するコードが作られます。

マクロ記録でできる罫線マクロ

例えばA1:G7セルを選択して、[ホーム]タブの[罫線]ボタンから「格子」罫線を引く操作をマクロ記録すると、

VBAで格子罫線を引く-Bordersコレクション

[スポンサードリンク]

以下のようなコードが作られます。

Sub 格子罫線を引く操作をマクロ記録()
 Range("A1:G7").Select
 Selection.Borders(xlDiagonalDown).LineStyle = xlNone
 Selection.Borders(xlDiagonalUp).LineStyle = xlNone
 With Selection.Borders(xlEdgeLeft)
  .LineStyle = xlContinuous
  .ColorIndex = 0
  .TintAndShade = 0
  .Weight = xlThin
 End With
 With Selection.Borders(xlEdgeTop)
  .LineStyle = xlContinuous
  .ColorIndex = 0
  .TintAndShade = 0
  .Weight = xlThin
 End With
 With Selection.Borders(xlEdgeBottom)
  .LineStyle = xlContinuous
  .ColorIndex = 0
  .TintAndShade = 0
  .Weight = xlThin
 End With
 With Selection.Borders(xlEdgeRight)
  .LineStyle = xlContinuous
  .ColorIndex = 0
  .TintAndShade = 0
  .Weight = xlThin
 End With
 With Selection.Borders(xlInsideVertical)
  .LineStyle = xlContinuous
  .ColorIndex = 0
  .TintAndShade = 0
  .Weight = xlThin
 End With
 With Selection.Borders(xlInsideHorizontal)
  .LineStyle = xlContinuous
  .ColorIndex = 0
  .TintAndShade = 0
  .Weight = xlThin
 End With
End Sub

この状態をご覧になった方でしょうか、
「vba borders 格子」
「エクセル vba 罫線 格子」
といった検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスもあります。

格子罫線を引くサンプルマクロ

Borderオブジェクトではなく、Bordersコレクションオブジェクトを使えば、もっと簡単に格子罫線を引くことができます。
Sub 格子罫線を引く()
 With Range("A1:G7").Borders
  .LineStyle = xlContinuous
  .Weight = xlThin
  .Color = RGB(255, 0, 0)
 End With
End Sub

上記のSubプロシージャを実行すると、アクティブシートのA1:G7セルに、赤色の格子罫線が引かれます。

BordersコレクションはBorderオブジェクトと同じプロパティも持っている

Bordersコレクションオブジェクトは、

VBAで格子罫線を引く-Bordersコレクション

Borderオブジェクトを単一オブジェクトとして持つコレクションですが、実はBorderオブジェクトが持つプロパティをすべて持っています。

VBAで格子罫線を引く-Bordersコレクション

Excelのオブジェクトモデルの中で、もっとも理解しやすいコレクションオブジェクトであるWorkbooksコレクションが、単独のオブジェクトであるWorkbookオブジェクトとはまったく異なるプロパティを持つのと対照的です。

マクロ記録をすると、Borderオブジェクトを個々に設定するコードが作られますが、Bordersコレクションオブジェクトを利用すれば、格子罫線を一気に設定できるというわけです。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 罫線・Borders » VBAで格子罫線を引く-Bordersコレクション

Copyright © インストラクターのネタ帳 All Rights Reserved.

.