区切り線の位置が取得できないとき
Dim r As Long
r = Worksheets(1).HPageBreaks(i).Location.Row
などとして区切り線の位置を取得しようとすると、実行時エラーがおきることがあります。
これは、画面に表示されていない範囲にある区切り線の位置が取得できないことがあることが原因かもしれません。
詳細はこちら↓
HPageBreaks または VPageBreaks.Location 使用時の "インデックスが有効範囲にありません" エラーについて
回避策としては、最終セルの選択を行います。
Worksheets(1).Cells.SpecialCells(xlCellTypeLastCell).Select
Dim r As Long
r = Worksheets(1).HPageBreaks(i).Location.Row
このとき、高速化のためにApplication.ScreenUpdating = False
としていると、最終セル選択時の描画が行われず、エラーが回避できないので注意してください。
区切り線の位置が変更できないとき
Set Worksheets(1).HPageBreaks(i).Location = Range("A3")
などとして区切り線の位置を変更しようとすると、実行時エラーがおきることがあります。
これは、表示モードが改ページプレビューでないことが原因かもしれません。
回避策としては、改ページプレビューにしてから区切り位置を変更してください。
ActiveWindow.View = xlPageBreakPreview
Set Worksheets(1).HPageBreaks(i).Location = Range("A3")
ActiveWindow.View = xlNormalView
ちなみにWorkbookオブジェクトからウィンドウを取得する場合は、Workbooks(1).Wondows(1)
などとします。