大体でIT
大体でIT
Excel VBAで、複数シートを印刷する方法について、ご紹介します。複数シートを印刷するには、シート名を入力した配列を用意して、その配列を使って印刷するとできます。印刷する作業が大量にある場合に、自動化できるとかなり楽になります。
この記事では、複数のシートを印刷する方法について、ご紹介します。
複数のシートを印刷するには、シート名を配列に入力して、『PrintOut』で印刷する。という感じです。
『ExportAsFixedFormat』を使えば、PDFで印刷することもできます。
印刷する作業が大量にある場合に、印刷作業を自動化すると、かなり楽になります。
では、複数シートの印刷について、解説していきます。
- 複数シートを印刷する
- 複数シートをPDFで印刷する
初めに、複数の印刷について、ポイントとなるVBAコードについて、記載しておきます。
VBAコードだけ確認したいという場合に、ご活用ください。
ActiveSheet.PrintOut '現在のシートを印刷
Worksheets("Sheet1").PrintOut '任意のシートを印刷
ReDim a(2)
a(0) = "Sheet1"
a(1) = "Sheet2"
a(2) = "Sheet3"
Worksheets(a).PrintOut '複数のシートを印刷
Worksheets.PrintOut '全てのシートを印刷
VBAで複数シートを印刷する方法について、解説していきます。
印刷をVBAで、自動化できると印刷する作業が、楽になります。
まず、ワークシートを印刷する方法について、説明します。
VBAで印刷するには、『〇〇.PrintOut』でできます。
アクティブシートを印刷するVBAコードは、こんな感じで記載します。
Sub TEST1()
'現在のシートを印刷
ActiveSheet.PrintOut
End Sub
これで、印刷できますけども、確認ができないので、プレビュー画面を表示して確認しようと思います。
Sub TEST2()
'現在のシートで、印刷プレビューを表示
ActiveSheet.PrintOut Preview:=True
End Sub
印刷するシート
印刷プレビュー
プレビュー『Preview:=True』を消せばそのまま印刷できます。
ワークシートのオブジェクトを指定すればいいので、『Worksheets("Sheet1")』というように、入力すればできます。
『Sheet1』を印刷してみます。こちらもプレビューで確認します。
Sub TEST3()
'任意のシートで、印刷プレビューを表示
Worksheets("Sheet1").PrintOut Preview:=True
End Sub
印刷するシート
4シートの中から、『Sheet1』だけを印刷します。
Sheet1だけ印刷
Sub TEST4()
'複数のシート名で、配列を作成
ReDim a(2)
a(0) = "Sheet1"
a(1) = "Sheet2"
a(2) = "Sheet3"
'複数シートで、印刷プレビューを表示
Worksheets(a).PrintOut Preview:=True
End Sub
- ①印刷したいシート名の配列を作成
- ②Worksheets(〇〇)の〇〇に配列を入力して印刷
印刷するシート
複数シートを印刷
3つのシートを印刷していて、3ページとなっているので、正しく印刷プレビューが表示されています。
これは、割と簡単で、『Worksheets』とだけ入力して、『PrintOut』を使えばできます。
全シートを印刷するVBAコードです。プレビューで確認します。
Sub TEST5()
'全てのシートで、印刷プレビューを表示
Worksheets.PrintOut Preview:=True
End Sub
印刷するシート
全シートを印刷
全ページは、4ページなので、正しく印刷プレビューがでています。
VBAで複数シートを、PDFに印刷する方法についてご紹介します。
PDFへの印刷もよく使いますので、使えるネタです。
PDFに印刷(ExportAsFixedFormat)
PDFに印刷するには、『ExportAsFixedFormat』を使います。
では、簡単なところで、アクティブシートをPDFに印刷してみます。
Sub TEST6()
'ファイルパス
a = ThisWorkbook.Path & "\TEST.pdf"
'現在のシートをPDFに印刷
ActiveSheet.ExportAsFixedFormat 0, a
End Sub
保存先のファイルパスを指定して、PDFに変換するという感じです。
PDFに印刷するシート
PDFが作成される
作成されたPDF
任意の1シートを印刷するには、『Worksheets("Sheet1")』というように指定します。
Sub TEST7()
'ファイルパス
a = ThisWorkbook.Path & "\TEST.pdf"
'任意のシートをPDFに印刷
Worksheets("Sheet1").ExportAsFixedFormat 0, a
End Sub
では、PDFに印刷するワークシートです。4シートを用意しました。
印刷するシート
4シートの中から、『Sheet1』だけをPDFに印刷します。
PDFが作成される
1シートをPDFに印刷
複数のシートを印刷するには、シート名の配列を作成して、PDFに印刷します。
Sub TEST8()
'複数のシート名で、配列を作成
ReDim a(2)
a(0) = "Sheet1"
a(1) = "Sheet2"
a(2) = "Sheet3"
'複数シートをコピー
Worksheets(a).Copy
'ファイルパス
b = ThisWorkbook.Path & "\TEST.pdf"
'新規ブックをPDFに印刷
ActiveWorkbook.ExportAsFixedFormat 0, b
'メッセージを非表示
Application.DisplayAlerts = False
'新規ブックを閉じる
ActiveWorkbook.Close
End Sub
- ①複数のシート名で、配列を作成
- ②複数シートを、新規ブックにコピー
- ③新規ブックをPDFに印刷
- ④新規ブックを閉じる
PDFに印刷する場合は、1シートもしくは、ブック全体でしかできないんですね。
印刷するシート
この内の、3シートだけを、PDFに印刷してみます。
PDFファイルが作成される
複数のシートをPDFに印刷
全てのシートを印刷するには、『Worksheets』としてすればできます。
Sub TEST9()
'ファイルパス
a = ThisWorkbook.Path & "\TEST.pdf"
'全てのシートをPDFに印刷
ThisWorkbook.ExportAsFixedFormat 0, a
End Sub
印刷するシート
PDFが作成される
全シートをPDFに印刷
この記事では、複数のシートを印刷する方法について、ご紹介しました。
複数のシートを印刷するには、シート名を配列に入力して、『PrintOut』で印刷する。という感じです。
『ExportAsFixedFormat』を使えば、PDFに印刷することもできます。
印刷する作業って面倒だったりしますよね。VBAで自動化して、楽していきましょう。
参考になればと思います。最後までご覧くださいまして、ありがとうございました。