大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、複数シートを印刷する方法について、ご紹介します。複数シートを印刷するには、シート名を入力した配列を用意して、その配列を使って印刷するとできます。印刷する作業が大量にある場合に、自動化できるとかなり楽になります。

はじめに

この記事では、複数のシートを印刷する方法について、ご紹介します。

複数のシートを印刷するには、シート名を配列に入力して、『PrintOut』で印刷する。という感じです。

『ExportAsFixedFormat』を使えば、PDFで印刷することもできます。

印刷する作業が大量にある場合に、印刷作業を自動化すると、かなり楽になります。

では、複数シートの印刷について、解説していきます。

この記事で紹介すること

  • 複数シートを印刷する
  • 複数シートをPDFで印刷する

目次から見たい項目へ移動すると便利ですよ。

目次

ポイントとなるVBAコード

初めに、複数の印刷について、ポイントとなる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で、自動化できると印刷する作業が、楽になります。

印刷する

まず、ワークシートを印刷する方法について、説明します。

VBAで印刷するには、『〇〇.PrintOut』でできます。

アクティブシートを印刷するVBAコードは、こんな感じで記載します。

Sub TEST1()
    
    '現在のシートを印刷
    ActiveSheet.PrintOut
    
End Sub

これで、印刷できますけども、確認ができないので、プレビュー画面を表示して確認しようと思います。

Sub TEST2()
    
    '現在のシートで、印刷プレビューを表示
    ActiveSheet.PrintOut Preview:=True
    
End Sub

印刷するシートです。

印刷するシート

印刷するシート

では、実行してみます。

印刷プレビュー

PrintOutで印刷プレビューを表示した結果

印刷プレビューが表示されました。

プレビュー『Preview:=True』を消せばそのまま印刷できます。

1シートだけを印刷

特定の1シートだけを印刷する場合です。

ワークシートのオブジェクトを指定すればいいので、『Worksheets("Sheet1")』というように、入力すればできます。

『Sheet1』を印刷してみます。こちらもプレビューで確認します。

Sub TEST3()
    
    '任意のシートで、印刷プレビューを表示
    Worksheets("Sheet1").PrintOut Preview:=True
    
End Sub

実行するワークシートです。4シートあります。

印刷するシート

実行するワークシート

4シートの中から、『Sheet1』だけを印刷します。

実行します。

Sheet1だけ印刷

PrintOutでSheet1だけが印刷される

Sheet1だけが印刷プレビューされました。

複数シートを印刷

複数シートを印刷する場合です。

複数シートの名前で配列を作成すればできます。

複数シートを印刷するVBAコードはこちらです。

Sub TEST4()
    
    '複数のシート名で、配列を作成
    ReDim a(2)
    a(0) = "Sheet1"
    a(1) = "Sheet2"
    a(2) = "Sheet3"
    
    '複数シートで、印刷プレビューを表示
    Worksheets(a).PrintOut Preview:=True
    
End Sub

手順は、

  • ①印刷したいシート名の配列を作成
  • ②Worksheets(〇〇)の〇〇に配列を入力して印刷

という感じです。

用意したシートは、4シートあります。

印刷するシート

印刷するシート

4シートの中から、3シートだけを印刷します。

実行してみます。

複数シートを印刷

複数シートを印刷した結果

複数シートの印刷プレビューが表示されました。

3つのシートを印刷していて、3ページとなっているので、正しく印刷プレビューが表示されています。

全シートを印刷

全シートを印刷する方法です。

これは、割と簡単で、『Worksheets』とだけ入力して、『PrintOut』を使えばできます。

全シートを印刷するVBAコードです。プレビューで確認します。

Sub TEST5()
    
    '全てのシートで、印刷プレビューを表示
    Worksheets.PrintOut Preview:=True
    
End Sub

『Worksheets』だけでできます。

印刷するシート

確認するワークシート

4シートあって、すべて1ページずつです。

全シートを印刷します。

全シートを印刷

全シートを印刷した結果

4ページ分の印刷プレビューがでました。

全ページは、4ページなので、正しく印刷プレビューがでています。

こんな感じで、簡単に印刷することができます。

VBAで複数シートをPDFに印刷

VBAで複数シートを、PDFに印刷する方法についてご紹介します。

PDFへの印刷もよく使いますので、使えるネタです。

PDFに印刷(ExportAsFixedFormat)

PDFに印刷するには、『ExportAsFixedFormat』を使います。

では、簡単なところで、アクティブシートをPDFに印刷してみます。

Sub TEST6()
    
    'ファイルパス
    a = ThisWorkbook.Path & "\TEST.pdf"
    
    '現在のシートをPDFに印刷
    ActiveSheet.ExportAsFixedFormat 0, a
    
End Sub

保存先のファイルパスを指定して、PDFに変換するという感じです。

使うワークシートです。4シート用意してあります。

PDFに印刷するシート

使うワークシート

では、アクティブシートをPDFに印刷してみます。

PDFが作成される

PDFに印刷した結果、PDFファイルが作成される

PDFファイルが作成されました。

中身をみてみます。

作成されたPDF

PDFに印刷してPDFの中身を確認する

ワークシートが、PDFに正しく印刷されています。

1シートだけを印刷

任意の1シートをPDFに印刷する方法です。

任意の1シートを印刷するには、『Worksheets("Sheet1")』というように指定します。

VBAコードは、こんな感じです。

Sub TEST7()
    
    'ファイルパス
    a = ThisWorkbook.Path & "\TEST.pdf"
    
    '任意のシートをPDFに印刷
    Worksheets("Sheet1").ExportAsFixedFormat 0, a
    
End Sub

では、PDFに印刷するワークシートです。4シートを用意しました。

印刷するシート

PDFに印刷するワークシート

4シートの中から、『Sheet1』だけをPDFに印刷します。

では、PDFに印刷してみます。

PDFが作成される

PDFに印刷した結果、PDFファイルが作成される

PDFファイルが作成されました。

中身を確認します。

1シートをPDFに印刷

PDFに印刷して、PDFファイルを確認する

正しく、ワークシートがPDFに印刷されています。

複数シートを印刷

複数のシートを印刷するには、シート名の配列を作成して、PDFに印刷します。

プリンタへの印刷と、少し違います。

VBAコードは、こんな感じです。

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シートもしくは、ブック全体でしかできないんですね。

では、PDFに印刷するワークシートです。

4シート用意しました。

印刷するシート

PDFに印刷するワークシート

この内の、3シートだけを、PDFに印刷してみます。

PDFファイルが作成される

PDFに印刷した結果、PDFファイルが作成される

PDFファイルが作成されました。

中身を確認します。

複数のシートをPDFに印刷

PDFに印刷して、PDFファイルを確認する

3ページのPDFが作成されました。

正しく、ワークシートがPDFに印刷されています。

全シートを印刷

全てのシートを印刷するには、『Worksheets』としてすればできます。

VBAコードは、こんな感じです。

Sub TEST9()
    
    'ファイルパス
    a = ThisWorkbook.Path & "\TEST.pdf"
    
    '全てのシートをPDFに印刷
    ThisWorkbook.ExportAsFixedFormat 0, a
    
End Sub

では、PDFに印刷するワークシートです。

4シート用意しました。

印刷するシート

PDFに印刷するワークシート

全てのシートを、PDFに印刷してみます。

PDFが作成される

PDFに印刷した結果、PDFファイルが作成される

PDFファイルが作成されました。

中身を確認します。

全シートをPDFに印刷

PDFに印刷して、PDFファイルを確認する

4ページのPDFが作成されました。

全てのシートが、PDFとして印刷されています。

こんな感じで、PDFに印刷することもできます。

おわりに

この記事では、複数のシートを印刷する方法について、ご紹介しました。

複数のシートを印刷するには、シート名を配列に入力して、『PrintOut』で印刷する。という感じです。

『ExportAsFixedFormat』を使えば、PDFに印刷することもできます。

印刷する作業って面倒だったりしますよね。VBAで自動化して、楽していきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す