エクセルシートの***にはA4横ページで縦に約20ページが並んでいます。
この***シートを別ブックにコピーしてCallで確認プロシージャーを呼び出して、印刷行の確認を行っています。(本来はそれ以外にも実行していますが、原因を探して行くとこの部分が残りました。)
しかし、この状態で「確認」を実行すると9ページ前後でプログラムが「インデックスが有効範囲にありません」とメッセージが出て、停止しています。停止した状態でデバックを行い(MsgBox ActiveSheet.HPageBreaks(i).Location.Rowの箇所が示されます)、継続実行を行うと後は問題なく実行されます。
各種On Errorを入れて試しましたが、やはり上手く行きません。
しかし、「確認」を単独で実行したり、「移動開始」の.Copyを.Moveに換えると問題なく実行されます。.COPYした時のクリップボード情報の何かが、問題を起こしているのかと思い、WEB見つけたクリップボードをクリアーにするプロシージャーを追加しましたが、やはり上手く行きません。
.Move後に.Copyで戻すという手も考えましたが、もう少しスマートな方法は無いでしょうか?
原因と回避の方法がありましたらご教示をお願い致します。
Sub 移動開始()
Sheets("***").Copy
ActiveWorkbook.Sheets("***").Select
Call 確認
End Sub
Sub 確認()
For i = 1 To ActiveSheet.HPageBreaks.Count
MsgBox ActiveSheet.HPageBreaks(i).Location.Row
Next i
End Sub
お礼
改ページプレビューの命令を入れる事で、実施できました。 私もご紹介いただいた質問者さんと同様に非常に悩みました。 ありがとうございます。