教えて!ExcelVBA!

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

【ExcelVBA ブック操作】ブックを印刷する時に発生するイベントプロシージャを作成するにはどうすればいいの?教えて!

       f:id:m_kbou:20200506123816p:plain

ブックを印刷する時に発生するイベントプロシージャの使用方法について説明します。

 

【目次】

 

構文

イベントプロシージャの記述方法は以下の通りです。

=======================================================================

Private Sub Workbook_BeforePrint(Cancel As Boolean)

   [実行する処理内容]

End Sub

=======================================================================

[説明]:

ブックを印刷する時に発生するイベントプロシージャにはBeforePrintプロシージャを使用します。[実行する処理内容]にはブックを印刷する際に実行させる内容を記述します。内容を纏めると、「ブックを印刷する時に[実行する処理組内容]を実行して下さい。」との意味になります。

[記述例]:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
  MsgBox "印刷します。"
End Sub

 

作り方

(1)VBE(VBA記述画面)を開きます

※画面の開き方は、こちらの手順を参考にして下さい。

【ExcelVBA 基本操作】マクロ/VBAを書く(記述する)ためにはどうすればいいの?教えて! - 教えて!ExcelVBA!

f:id:m_kbou:20200506112801p:plain

(2)ブックオブジェクトをダブルクリックします。

f:id:m_kbou:20200506112815p:plain

(3)オブジェクトボックスの▼ボタンをクリックします。

f:id:m_kbou:20200506112838p:plain

(4)プルダウン一覧の中から「WorkBook」を選択します。

f:id:m_kbou:20200506112853p:plain

※この時点で「Workbook_Open」イベントプロシージャが表示されます。(これは自動的に作成される仕組みとなっているようです)

f:id:m_kbou:20200506112910p:plain

(5)プロシージャボックスの▼ボタンをクリックします。

f:id:m_kbou:20200506112923p:plain

(6)プルダウン一覧の中から「BeforePrint」を選択します。

f:id:m_kbou:20200506124039p:plain

(7)「Workbook_BeforePrint」イベントプロシージャが表示されます。

f:id:m_kbou:20200506124110p:plain

(8)(7)で作成したイベントプロシージャに実行させる内容を記述します。今回は実行された際に「印刷します。」がMsgBoxで表示される内容を記述しました。

f:id:m_kbou:20200506124142p:plain

ブックを印刷する時に発生するイベントプロシージャの作成方法についての説明は以上です。

 

実行例

今回の例としては、Book1ブックには上記で説明したイベントプロシージャが記述されています。

(実行前)

①Book1ブック中の「ファイル」タブをクリックします。

f:id:m_kbou:20200506124236p:plain

②「印刷」をクリックします。

f:id:m_kbou:20200506125238p:plain

③<印刷>ボタンをクリックします。

f:id:m_kbou:20200506125253p:plain

(実行後) 

※Book1ブックが印刷される前に「印刷します。」が表示されます。(Book1ブックを印刷する事で、プロシージャが実行されてメッセージが表示されました)

f:id:m_kbou:20200506124320p:plain

 

おわりに

今回はブックを印刷する時に発生するイベントプロシージャの作成方法について説明しました。オブジェクトボックスでオブジェクトを選択すると、そのオブジェクト既定の「Workbook_Open」イントプロシージャが自動的に作成されます。不要な場合は削除して下さい。