セルに罫線を引く操作をマクロ記録すると、読むのに一苦労するコードが作られます。
マクロ記録でできる罫線マクロ
例えばA1:G7セルを選択して、[ホーム]タブの[罫線]ボタンから「格子」罫線を引く操作をマクロ記録すると、
以下のようなコードが作られます。
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コレクションオブジェクトを使えば、もっと簡単に格子罫線を引くことができます。With Range("A1:G7").Borders
.LineStyle = xlContinuous
.Weight = xlThin
.Color = RGB(255, 0, 0)
End With
End Sub
上記のSubプロシージャを実行すると、アクティブシートのA1:G7セルに、赤色の格子罫線が引かれます。
BordersコレクションはBorderオブジェクトと同じプロパティも持っている
Bordersコレクションオブジェクトは、
Borderオブジェクトを単一オブジェクトとして持つコレクションですが、実はBorderオブジェクトが持つプロパティをすべて持っています。
Excelのオブジェクトモデルの中で、もっとも理解しやすいコレクションオブジェクトであるWorkbooksコレクションが、単独のオブジェクトであるWorkbookオブジェクトとはまったく異なるプロパティを持つのと対照的です。
マクロ記録をすると、Borderオブジェクトを個々に設定するコードが作られますが、Bordersコレクションオブジェクトを利用すれば、格子罫線を一気に設定できるというわけです。
Home » Excel VBA Rangeオブジェクト » 罫線・Borders » VBAで格子罫線を引く-Bordersコレクション