「excel vba すべてのシートの改ページを消去」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
2007以降のExcelでは、[ページレイアウト]タブ-[ページ設定]グループ-[改ページ]ボタン-[すべてのシートの改ページを解除]コマンドから、
アクティブなワークシートの改ページを、すべて解除することができます。
「excel vba すべてのシートの改ページを消去」
という検索をした方は、この処理をすべてのワークシートに対して行うには、VBA(Visual Basic for Applications)でどのようなコードを書けばいいのかを探していたのでしょう。
マクロ記録でできたコードを元にした全シートの改ページを解除するサンプルマクロ
以下のようなマクロで、全ワークシートの改ページを解除できます。
Dim sh As Worksheet For Each sh In Worksheets
sh.ResetAllPageBreaks
Next sh
End Sub
[ページレイアウト]タブ-[ページ設定]グループ-[改ページ]ボタン-[すべてのシートの改ページを解除]を、マクロ記録してみると、
ActiveSheet.ResetAllPageBreaks
という、WorksheetオブジェクトのResetAllPageBreaksメソッドを利用したコードが作られます。
このWorksheet.ResetAllPageBreaksメソッドを、すべてのワークシートに対するFor Each~Nextループの中で呼んでいるコードです。
「excel vba すべてのシートの改ページを消去」
という検索をした方が、マクロ記録をしてみたかどうかはわかりませんが、マクロを自分で作れるようになりたいのであれば、いきなりインターネットで検索するよりも、まずはマクロ記録を行ってみて、マクロ記録機能で自動的に作られたコードを、どう修正すれば希望する処理になるのかを考えるクセをつけましょう。
オブジェクト変数・For Each~Nextループが苦手な方向けのサンプルマクロ
マクロ学習を始めたばかりの方の中には、その便利さは感じつつも、オブジェクト変数の中に何が入るのかをイメージし辛いことなどから、For Each~Nextループに苦手意識を持つ方もいらっしゃいます。
オブジェクト変数を使わない、以下のようなFor~Nextループを使ったマクロでも、すべてのワークシートの改ページを解除できます。
Dim i As Long For i = 1 to Worksheets.Count
Worksheets(i).ResetAllPageBreaks
Next i
End Sub
オブジェクト変数ではない普通の変数のほうが、何が代入されているのかわかりやすく、
For i = 1 to Worksheets.Count
Worksheets(i).ResetAllPageBreaks
Next i
というコードの「Worksheets(i)」というオブジェクト式で、ワークシートを左から順番に取得できることをイメージしやすいはずです。
この「Worksheets(i)」というオブジェクト式で取得できるワークシートと同じものが、
For Each sh In Worksheets
sh.ResetAllPageBreaks
Next sh
という先にご紹介したマクロのオブジェクト変数・shに、For Each~Nextループが回ることで順番に入るということを、オブジェクト変数が苦手という方は、まずはイメージしてみてください。
また、ローカルウィンドウンドウでオブジェクト変数の中身を眺めながら、こんなものが入るのがオブジェクト変数なのだなぁと、まずは、ぼんやりと思いながら、
For Each sh In Worksheets
sh.ResetAllPageBreaks
Next sh
というコードをステップ実行することもおすすめしておきます。
Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » 全シートの改ページを解除するExcelマクロ