・Sheet3 を Sheet2 へコピーし、Sheet2 へ改ページを挿入するマクロを作りました。
しかしこの改ページ処理
ws_sheet2.Cells(idx_sentou + 1, 1).PageBreak = xlManual
を実行すると以下のエラーが発生します。
実行時エラー '1004':
Range クラスの PageBreak プロパティを設定できません。
不思議なことに、デバッグウィンドウを表示しF5で実行すると、上記のエラーは発生しません。
・以下の条件下で発生する事が判明しています。
EXCEL2010、他のバージョンでは試していません。
Sheet1 へ図形を貼り付け、そこへマクロはを登録し実行しています。
Sheet2 は[改ページプレビュー]です、[標準]ビューではエラーになりません。
Sheet2 の全てのセルを削除した状態でのみ発生し、1行でもセルが存在する場合には発生しません。
※具体的には Sheet2 の "A1"セルにカーソルがある状態で、CTRL + SHIFT + END で全セルを選択後、右クリックより削除(D)でセルを削除。
・どうかご教授の程、宜しくお願い致します。
・マクロ
Sub Macro1()
Dim ws_sheet2 As Object
Dim ws_sheet3 As Object
Dim idx_sentou As Long
'* ワークシート変数の設定
Set ws_sheet2 = Worksheets("Sheet2")
Set ws_sheet3 = Worksheets("Sheet3")
'* インデックスの設定
idx_sentou = 10
'* sheet2 の初期クリア
ws_sheet2.Range("A1:P999").Clear
'* sheet2 の改ページをクリア
ws_sheet2.ResetAllPageBreaks
'* sheet3 を sheet2 へコピー
'* ※sheet3には書式が設定されており、その書式を sheet2 へコピーする為
ws_sheet3.Range("1:10").Copy
ws_sheet2.Range("1:10").PasteSpecial Paste:=xlPasteAll
'* sheet2 をクリア
ws_sheet2.Cells(1, 1).Resize(9, 4).Value = ""
'* sheet2 を編集
ws_sheet2.Cells(10, 1).Value = "XXXXXXXX"
'* 改ページの挿入
ws_sheet2.Cells(idx_sentou + 1, 1).PageBreak = xlManual
End Sub
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
のほうがいいかな、という点です。参考まで。
早速の回答と、丁寧な説明、自環境で再現テストまでしていただき、
本当にありがとうございました。
>>・一旦[標準]ビューで処理し、最後に[改ページプレビュー]設定する。
(;^_^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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
ExcelVBA Range クラスの PageBreak プロパティを設定できません。
Visual Basic(VBA)
-
Excel 改ページのVBAうまくいかないです
Excel(エクセル)
-
ExcelVBA 改ページの横破線を消す方法
Excel(エクセル)
-
-
4
VBAの改ページ設定について
Visual Basic(VBA)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
チェックボックスを操作できないようにしたいです VB.NET
Visual Basic(VBA)
-
7
Excelの見た事のないエラーで困っています。
Excel(エクセル)
-
8
.NET上でエクセル上に罫線を引く
Visual Basic(VBA)
-
9
アクセスVBAのMe!と[ ]
Access(アクセス)
-
10
Excelのマクロで実行時エラー”1004”を解決するには?
その他(データベース)
-
11
DataGridViewのフォーカス遷移について
Visual Basic(VBA)
-
12
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
13
vba 改ページカウントで不可解なエラーを回避したいのですが教えてください
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(VBA)指定したセルがアクティブ...
-
顧客ごとに違う点検案内を作成...
-
セル入力文字が、「右のセルに...
-
エクセル、ページをまたがった...
-
パワポの複数ページにまたがる...
-
【Excel VBA】CSV取込時、数字...
-
Word2016でExcelデータを差込し...
-
エクセルでセルの中の文字が削...
-
数独のアプリで表の中の数字を...
-
ワードの表の行が広がってしまう
-
ワードの文章囲み枠(?)を消...
-
Wordで、表のセルが変なところ...
-
エクセルで知らない間に行がず...
-
オプションボタンの背景を透明...
-
表と票の違いは?
-
ワードで勝手に点線ラインがでる
-
wordで罫線が引けない・・・
-
ワードの表の罫線が見えるけど...
-
エクセル 結合したセルの間にセ...
-
パワーポイントの表
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 図形の選択法は?
-
PageBreak プロパティを設定で...
-
(VBA)指定したセルがアクティブ...
-
VBA 選択したセルが空白であっ...
-
TextBoxにExcelの背景色を取得
-
顧客ごとに違う点検案内を作成...
-
VBAでセルの選択範囲を指定する...
-
マクロについて教えてください
-
【Excel VBA】Caseマクロを簡潔...
-
セル入力文字が、「右のセルに...
-
エクセル、ページをまたがった...
-
パワポの複数ページにまたがる...
-
Word2016でExcelデータを差込し...
-
ワードの文章囲み枠(?)を消...
-
【Excel VBA】CSV取込時、数字...
-
ワードの表の行が広がってしまう
-
エクセルでセルの中の文字が削...
-
あるセルに色を付けた時、別の...
-
エクセルで知らない間に行がず...
-
wordで罫線が引けない・・・
おすすめ情報