教えて!ExcelVBA!

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

【ExcelVBA 印刷】シートを印刷(PrintOut)するにはどうすればいいの?教えて!

構文

構文は以下の通りです。

Worksheetオブジェクトの場合

Worksheet.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName)

Workbookオブジェクトの場合

Workbook.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName)

解説

PrintOutメソッドは、WorksheetオブジェクトやWorkbookオブジェクトで使用することができます。それぞれの引数は以下の通りです。

引数 指定 内容
From 省略可 印刷を開始する最初のページ番号を指定します。省略すると1ページ目が指定されます。
To 省略可 印刷を終了する最後のページ番号を指定します。省略すると最後のページが指定されます。
Copies 省略可 印刷するコピーの部数を指定します。省略すると1部印刷の指定がされます。
Preview 省略可 プレビューモードで印刷するかどうかを指定します。(TrueまたはFalse)
ActivePrinter 省略可 使用するプリンターの名前を指定します。
PrintToFile 省略可 ファイルに印刷するかどうかを指定します。(TrueまたはFalse)
Collate 省略可 順番に印刷するかどうかを指定します。(TrueまたはFalse)
PrToFileName 省略可 印刷した内容を保存するファイル名を指定します。(PrintToFileがTrueの場合のみ)

使い方

具体的なコード例を交えて説明します。

例1:特定のワークシートを印刷する場合

次のコードは、Sheet1を印刷する例です。

Sub PrintSheet1()
    Sheets("Sheet1").PrintOut
End Sub

このコードでは、PrintOutメソッドを使ってSheet1を印刷しています。指定するパラメータはありませんので、デフォルトの設定で印刷が行われます。

例2:範囲指定での印刷

次のコードは、Sheet1のA1からB10の範囲を印刷する例です。

Sub PrintRange()
    Sheets("Sheet1").Range("A1:B10").PrintOut
End Sub

このコードでは、PrintOutメソッドに印刷範囲を指定しています。A1からB10までの範囲が印刷されます。

例3:プレビューモードで印刷

次のコードは、プレビューモードで印刷する例です。

Sub PrintPreview()
    Application.Dialogs(xlDialogPrintPreview).Show
End Sub

このコードでは、PrintPreviewメソッドを使用して印刷プレビューを表示しています。ダイアログボックスが表示され、ユーザーが印刷内容を確認できます。

例4:範囲指定での印刷

次のコードは、Sheet1のA1からB10の範囲を印刷する例です。

Sub PrintRange()
    Sheets("Sheet1").Range("A1:B10").PrintOut
End Sub

このコードでは、PrintOutメソッドに印刷範囲を指定しています。A1からB10までの範囲が印刷されます。

例5:特定のワークシートを複数部印刷する場合

次のコードは、Sheet1を3部印刷する例です。

Sub PrintMultipleCopies()
    Sheets("Sheet1").PrintOut Copies:=3
End Sub

このコードでは、PrintOutメソッドのCopiesパラメータに3を指定しています。したがって、Sheet1が3部印刷されます。

例6:範囲指定で複数部印刷する場合

次のコードは、Sheet1のA1からB10の範囲を2部印刷する例です。

Sub PrintRangeMultipleCopies()
    Sheets("Sheet1").Range("A1:B10").PrintOut Copies:=2
End Sub

このコードでは、PrintOutメソッドのCopiesパラメータに2を指定しています。したがって、Sheet1のA1からB10の範囲が2部印刷されます。

まとめ

PrintOutメソッドは、ワークシートやブックを印刷するための便利な機能です。このメソッドを使うことで、簡単にExcelのデータを印刷することができます。是非活用してください。