📊 Excel VBA Top100
⚡

QuickPrint

自動化

アクティブシートをデフォルトプリンタで印刷します

現在のシートをプリンターに即座に送信して印刷するマクロです。印刷ダイアログを表示せずにデフォルトプリンターで直接印刷するため、確認作業なしに素早く印刷できます。印刷部数・印刷範囲・用紙サイズの設定をマクロに組み込むことで、毎回同じ設定で一貫した印刷を実現できます。「いつも同じ設定で印刷する」業務に最適で、印刷操作のステップを最小化できます。内部ではWorksheet.PrintOutメソッドを既定の設定で即座に呼び出しており、印刷ダイアログを経由しないため操作ステップを最小限に抑えられます。CreatePDFExportが電子的な保存を目的とするのに対し、本マクロは紙への即時出力に特化しており、現場での運用場面に応じて使い分けるのが効果的です。印刷ダイアログの表示・設定確認・OKクリックという3ステップを1クリックに短縮できる点が最大の価値です。

QuickPrint デモ

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: QuickPrint を実行すると、現在のシートが印刷されます

🎯 活用シーン

  • ✓毎日印刷する日次報告書や業務日報を、ワンクリックで設定なしに素早く印刷して印刷作業の手間を省きたいとき
  • ✓請求書・納品書・発注書などの帳票を決まった書式で素早く印刷するためのボタンをシート上に配置したいとき
  • ✓在庫ラベルやバーコードシートを繰り返し印刷する業務で、毎回の印刷設定確認を省いてスピーディに処理したいとき
  • ✓倉庫や工場のような現場で、確認画面を経由せず即座に伝票を印刷したいとき
  • ✓受付窓口でその場で発行する証明書や案内資料を、ワンクリックで素早く印刷したいとき

💡 実装のヒント

  • ▸印刷前に印刷プレビューを表示する処理を追加することで、意図しないページ崩れを確認してから印刷できます。
  • ▸印刷部数はCopiesパラメーターで指定できます。複数部数を印刷する場合は部数をマクロに設定してください。
  • ▸特定の印刷範囲(ページ)だけを印刷したい場合は、FromPageとToPageパラメーターでページ範囲を指定してください。
  • ▸誤操作による大量印刷を防ぐため、実行前に簡易的な確認メッセージ(MsgBox)を挟む設計にすることをお勧めします。
  • ▸複数プリンターを使い分ける環境では、ActivePrinterプロパティで出力先を明示的に指定してください。

💻 VBAコード

' QuickPrint
' -----------------
' Macro Name: QuickPrint
' Description: アクティブシートをデフォルトプリンタで印刷します
' Parameters: なし
' Returns: なし
' Usage: QuickPrint を実行すると、現在のシートが印刷されます
' -----------------

Sub QuickPrint()
    On Error GoTo ErrorHandler
    
    Dim ws As Worksheet
    Set ws = ActiveSheet
    
    ' 印刷プレビューを表示せずに印刷
    ws.PrintOut Preview:=False
    
    MsgBox "印刷を開始しました", vbInformation, "印刷"
    
    Exit Sub
    
ErrorHandler:
    MsgBox "エラーが発生しました:" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub