• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PageBreak プロパティを設定できません。)

ExcelマクロでPageBreakプロパティを設定できないエラーの解決方法とは?

このQ&Aのポイント
  • ExcelマクロにおいてPageBreakプロパティを設定する際に発生するエラーの解決方法について紹介します。
  • 具体的には、セルの削除やビューの切り替え、特定のバージョンでの挙動などが関わっています。
  • また、デバッグウィンドウを表示しF5で実行するとエラーが発生しないという現象も確認されています。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

2003でも発生しますね。 [改ページプレビュー]時の描画関係で何か不具合があるのかもしれません。 #タイミングの問題? 解消策としては ・一旦[標準]ビューで処理し、最後に[改ページプレビュー]設定する。 ・ws_sheet2をActiveにして実行する。 ・'* 改ページの挿入の直前に DoEvents を挿入する。 ・Application.ScreenUpdating = False で実行する。 いずれでも解消するようです。 以下余談、ちょっと気になったこと。 >ws_sheet3.Range("1:10").Copy >ws_sheet2.Range("1:10").PasteSpecial Paste:=xlPasteAll xlPasteAllなら ws_sheet3.Range("1:10").Copy ws_sheet2.Range("1:10") でもいいかな、という点と >'* sheet2 をクリア なら ws_sheet2.Cells(1, 1).Resize(9, 4).ClearContents のほうがいいかな、という点です。参考まで。

y_s_x
質問者

お礼

早速の回答と、丁寧な説明、自環境で再現テストまでしていただき、 本当にありがとうございました。 >>・一旦[標準]ビューで処理し、最後に[改ページプレビュー]設定する。 (;^_^A アセアセ・・・、ご指摘を受ける前にこの方法に気付くべきですよね... この事象は質問を書いている途中で気が付き、 そこまで頭がまわりませんでした。 →解消いたしました >>・ws_sheet2をActiveにして実行する。 ws_sheet2.Activateを挿入しOKでした。 →解消いたしました ただ、オリジナルのソースの方でも既にActivateは試していたのですが 、そちらは何故かNG、もっと複雑なソースなので別要因かもしれません。 >>・'* 改ページの挿入の直前に DoEvents を挿入する。 →解消いたしました >>・Application.ScreenUpdating = False で実行する。 こちらの環境ではNGでした。 Application.ScreenUpdating = False '* 改ページの挿入 ws_sheet2.Cells(idx_sentou + 1, 1).PageBreak = xlManual Application.ScreenUpdating = True >>ws_sheet3.Range("1:10").Copy ws_sheet2.Range("1:10") >>でもいいかな、という点と VB ならまだしも VBA となるとまるで素人で、よくわからず 作っております、ご指摘の通りに修正しました。 >>ws_sheet2.Cells(1, 1).Resize(9, 4).ClearContents >>のほうがいいかな、という点です。参考まで。 同じく、ご指摘の通りに修正しました。 こう言うアドバイスって素人には本当に助かります。 最終的には DoEvents 使用し解決とさせていただきました。 なにはともあれ、本当にありがとうございました。

関連するQ&A