教えて!ExcelVBA!

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

【ExcelVBA 印刷】複数のセル範囲を部単位で印刷(PrintOut)する方法について教えて!

f:id:m_kbou:20210502180101p:plain

複数のセル範囲を指定して部単位で印刷する方法について紹介します。セル範囲毎に別ページに分けて印刷されます。

 

 

構文

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

Sheets("[シート名]").Range("[複数セル範囲]").PrintOut Collate:=True

[説明]:

複数のセル範囲を部単位で印刷する場合は「Sheets("[シート名]").Range("[複数セル範囲]").PrintOut Collate:=True」と記述します。[シート名]には印刷対象のシート名を記述し、「”」(ダブルクォーテーション)で囲みます。[複数セル範囲]には印刷する複数のセル範囲を記述し、こちらも「”」(ダブルクォーテーション)で囲みます。印刷するためにPrintOutメソッドを使用し、部単位で印刷する場合にはPrintOutメッソドの後にCollate:=Trueを記述します。内容を纏めると、「[シート名]で指定したシートの[複数セル範囲]で指定した複数のセル範囲毎に部単位で印刷して下さい。」との意味になります。

[記述例]:

Sheets("Sheet1").Range("A1:D4,E5:G8").PrintOut Collate:=True

 

使い方

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

[プログラミング例]:

Sub サンプル()
  Sheets("Sheet1").Range("A1:D4,E5:G8").PrintOut Collate:=True
End Sub

内容は、「Sheet1シートのA1セル~D4セルの範囲とE5セル~G8セルの範囲を部単位(別ページ)で印刷して下さい。」との意味になります。(※指定したセル範囲が複数ある場合は、「,」(カンマ)で区切ります。)

f:id:m_kbou:20210502181105p:plain

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

[実行例]:

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

f:id:m_kbou:20210502181122p:plain

②結果は以下の様になります。1ページ目はA1セル~D4セルの範囲が印刷され、2ページ目はE5セル~G8セルの範囲が印刷されます。

f:id:m_kbou:20210502181136p:plain

[サンプル]:

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

drive.google.com

複数のセル範囲を部単位で印刷する方法についての説明は以上です。

 

おわりに

今回は複数のセル範囲を部単位で印刷する方法について説明しました。セル単位で印刷したい時に非常に便利です。是非覚えておいて下さい。