教えて!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:印刷を開始する最初のページ番号
●To:印刷を終了する最後のページ番号
●Copies:印刷するコピーの数
●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のデータを印刷することができます。是非活用してください。