教えて!ExcelVBA!

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

ExcelVBAでブックを印刷する時に処理を実行する方法

構文

構文は以下の通りです。

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    ' 印刷前に実行するコードをここに記述
End Sub

解説

Workbook_BeforePrintは、Excelのワークブックが印刷される前に自動的に実行されるイベントです。Cancelは、ブックの印刷をキャンセルするための引数です。Trueに設定すると印刷されません。

プログラミング例

具体的なプログラミング例を紹介します。

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Dim セル As Range
    Set セル = ThisWorkbook.Sheets("Sheet1").Range("A1")
    If IsEmpty(セル.Value) Then
        MsgBox "セルA1は空です。印刷を中止します。"
        Cancel = True
    Else
        MsgBox "セルA1には値が入力されています。印刷を続行します。"
    End If
End Sub

上記のプログラムは、印刷前にSheet1のセルA1の値を確認し、セルが空の場合はメッセージボックスで通知して印刷をキャンセルします。また、セルに値が入っている場合は、メッセージボックスで通知して印刷を続行します。

まとめ

Workbook_BeforePrintイベントは、ワークブックが印刷される前に実行されます。