教えて!ExcelVBA!

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

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

f:id:m_kbou:20210503073432p:plain

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

 

 

構文

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

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

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

[説明]:

水平方向に改ページを挿入する場合は「Sheets("[シート名]").HPageBreaks.Add Before:=Range("[改ページを挿入するセル]")」と記述します。[シート名]には改ページするシート名を記述し、「”」(ダブルクォーテーション)で囲みます。HPageBreaks.Addは水平方向に改ページを挿入する指定となります。[改ページを挿入するセル]には改ページを挿入するセルの場所を記述します。Before:=は[改ページを挿入設定するセル]で指定したセルの上側にとの意味になります。内容を纏めると、「[シート名]シートの[改ページを挿入するセル]で指定したセルの上側に改ページを挿入して下さい。」との意味になります。

[記述例]:

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

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

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

[説明]:

垂直方向に改ページを挿入する場合は「Sheets("[シート名]").VPageBreaks.Add Before:=Range("[改ページを挿入するセル]")」と記述します。[シート名]には改ページするシート名を記述し、「”」(ダブルクォーテーション)で囲みます。VPageBreaks.Addは垂直方向に改ページを挿入する指定となります。[改ページを挿入するセル]には改ページを挿入するセルの場所を記述します。Before:=は[改ページを挿入設定するセル]で指定したセルの左側にとの意味になります。内容を纏めると、「[シート名]シートの[改ページを挿入するセル]で指定したセルの左側に改ページを挿入して下さい。」との意味になります。

[記述例]:

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

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

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

[説明]:

水平方向や垂直方向に挿入した改ページを解除する場合は「Sheets("[シート名]").ResetAllPageBreaks」と記述します。[シート名]には改ページを解除するシート名を記述し、「”」(ダブルクォーテーション)で囲みます。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

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

 

おわりに

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