教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 印刷】水平方向/垂直方向に改ページを挿入する方法について教えて!

f:id:m_kbou:20210503073432p:plain

水平方向及び垂直方向に改ページを挿入する方法について紹介します。水平方向に改ページを挿入するにはHPageBreaksコレクションのAddメソッドを使用し、垂直方向に改ページを挿入するにはVPageBreaksコレクションのAddメソッドを使用します。

 

 

構文

記述方法は以下の通りとなります。

(1)水平方向に改ページを挿入

Sheets("[シート名]").HPageBreaks.Add Before:=Range("[改ページ挿入セル]")

[説明]:

水平方向に改ページを挿入する場合は

「Sheets("[シート名]").HPageBreaks.Add Before:=Range("[改ページ挿入セル]")」

と記述します。

[シート名] 改ページを挿入するシート名を記述します。
※「”」(ダブルクォーテーション)で囲みます。
[改ページ挿入セル] 改ページを挿入するセルを記述します。
※「”」(ダブルクォーテーション)で囲みます。

[記述例]:

Sheets("Sheet1").HPageBreaks.Add Before:=Range("A5")

(2)垂直方向に改ページを挿入

Sheets("[シート名]").VPageBreaks.Add Before:=Range("[改ページ挿入セル]")

[説明]:

垂直方向に改ページを挿入する場合は

「Sheets("[シート名]").VPageBreaks.Add Before:=Range("[改ページ挿入セル]")」

と記述します。

[シート名] 改ページを挿入するシート名を記述します。
※「”」(ダブルクォーテーション)で囲みます。
[改ページ挿入セル] 改ページを挿入するセルを記述します。
※「”」(ダブルクォーテーション)で囲みます。

[記述例]:

Sheets("Sheet1").VPageBreaks.Add Before:=Range("D1")

(3)挿入した改ページを解除

Sheets("[シート名]").ResetAllPageBreaks

[説明]:

水平方向や垂直方向に挿入した改ページを解除する場合は

 「Sheets("[シート名]").ResetAllPageBreaks」

と記述します。

[シート名] 改ページを解除するシート名を記述します。
※「”」(ダブルクォーテーション)で囲みます。

 

使い方

使い方について具体的に説明します。

水平方向に改ページを挿入

水平方向に改ページを挿入する方法について説明します。

[プログラミング例]:

Sub サンプル()
  Sheets("Sheet1").HPageBreaks.Add Before:=Range("A5")
End Sub

内容は、「Sheet1シートのA5セル上側に水平方向の改ページを挿入して下さい。」との意味になります。

f:id:m_kbou:20210502184754p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①Sheet1シートのA1セル~G8セルにデータが入力されています。<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210502184813p:plain

②結果は以下の様になり、4行目と5行目の間に水平方向の改ページが挿入されます。

f:id:m_kbou:20210502184824p:plain

③また、印刷プレビューで確認するとA1セル~G4セルまでのセル範囲が1ページ目に印刷され、A5セル~G8セルまでのセル範囲が2ページ目に印刷される事が確認できます。

f:id:m_kbou:20210502184835p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

水平方向に改ページを挿入する方法についての説明は以上です。

 

垂直方向に改ページを挿入

垂直方向に改ページを挿入する方法について説明します。

[プログラミング例]:

Sub サンプル()
  Sheets("Sheet1").VPageBreaks.Add Before:=Range("D1")
End Sub

内容は、「Sheet1シートのD1セル左側に垂直方向の改ページを挿入して下さい。」との意味になります。

f:id:m_kbou:20210503073918p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①Sheet1シートのA1セル~G8セルにデータが入力されています。<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210503073931p:plain

②結果は以下の様になり、C列とD列の間に垂直方向の改ページが挿入されます。

f:id:m_kbou:20210503073944p:plain

③また、印刷プレビューで確認するとA列~C列までのセル範囲が1ページ目に印刷され、D列~G列までのセル範囲が2ページ目に印刷される事が確認できます。

f:id:m_kbou:20210503074020p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

垂直方向に改ページを挿入する方法についての説明は以上です。

 

挿入した改ページを解除

挿入した改ページを解除する方法について説明します。

[プログラミング例]:

Sub サンプル()
  Sheets("Sheet1").ResetAllPageBreaks
End Sub

内容は、「Sheet1シートに挿入されている改ページを全て解除して下さい。」との意味になります。

f:id:m_kbou:20210504174413p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①Sheet1シートのA1セル~G8セルにデータが入力されています。A3セルの上側に水平方向の改ページが挿入されており、D列の左側にも垂直方向の改ページが挿入されています。<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210504174429p:plain

②結果は以下の様になり、挿入されていた改ページが全て解除されます。

f:id:m_kbou:20210504174444p:plain

③また、印刷プレビューで確認するとA1セル~G8セルに入力されていたデータ全てが1ページ印刷される事が確認できます。

f:id:m_kbou:20210504174455p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

挿入した改ページを解除する方法についての説明は以上です。

 

おわりに

今回は水平方向/垂直方向に改ページを設定する方法について説明しました。新たに改ページを設定する場合には、一度全ての改ページを解除してから設定すると余計な改ページが挿入されずに済みます。是非参考にして下さい。