LoginSignup
0
0

More than 3 years have passed since last update.

【VBA】シートに改ページを設定しようとしたらエラーが起きる

Posted at

区切り線の位置が取得できないとき

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)などとします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0