飛び飛びでも好いからデータの入っている、一番下行且つ一番右列まで(A1セルからのセル範囲)に(桝目状に)罫線を引きます。
式のセットされているセルも、データありと同じ扱いになります。
Range("A1").Select
のところは、見だしや左余白の関係で、左上隅を指定するものですが、B2など適当に指定してください。
Set c = Selection.SpecialCells(xlCellTypeLastCell)
のところも、合計欄などのために、1行下まで罫線を引きたいなら
Set c = Selection.SpecialCells(xlCellTypeLastCell).Offset(1, 0)
として下さい。
'---以下は桝目罫線を引くルーチンですがマクロの記録そのものの平板なものです。適当に色や太さなどしたいように変えてください。
この回答のポイントはSpecialCellsの利用です。
Sub test01()
Dim c As Range
Range("A1").Select
Set c = Selection.SpecialCells(xlCellTypeLastCell)
Range(Cells(1, "A"), c).Select
'----
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub
補足
はい。例えば、A1~G1はいつも固定で、データがA15~G15 時にはA17~G17、A25~G25と横に対しては固定で、縦に対しては一定ではないのです。ちょっと、説明の仕方がへたですいません。