Excel VBA シートの印刷をできないようにする

スポンサーリンク
スポンサーリンク

印刷するボタンを押したときにマクロを自動実行して印刷をできないようにする方法

印刷をされると困るような資料がブックにある場合に印刷をしようとするとマクロが実行されて、印刷ができないように制御するには、ブックを印刷する操作をしたときに発生するイベントプロシージャーのBeforePrint【ビフォアプリント】イベントプロシージャーを作成します。ThisWorkbookモジュールのPrivate Sub Workbook_BeforePrint(Cancel As Boolean)プロシージャーに、マクロを記述します。

ThisWorkbookモジュールの使い方

1.開発タブをクリックする
2.VisualBasicをクリックして開く



3.ThisWorkbookを選択する



4.ダウンリストをクリックする
5.Workbookを選択する



6.右側のダウンリストをクリックする
7.BeforPrintを選択する



8.Private Sub workbook_BeforePrint(Cancel As Boolean)
プロシージャが作成されました。


印刷する直前にマクロを自動実行して印刷をできないようにするコード

Private Sub Workbook_BeforePrint(Cancel As Boolean)
MsgBox "このブックは印刷が許可されていません。", vbExclamation
Cancel = True
End Sub

コードの解説

1行目【Private Sub Workbook_BeforePrint(Cancel As Boolean)】
ワークブックを印刷する操作を実行すると発生するBeforePrint【ビフォアプリント】イベントプロシージャーを作成します。


2行目【MsgBox “このブックは印刷が許可されていません。”, vbExclamation】
ユーザーが印刷操作をしたときにMsgBox【メッセージボックス】関数を使用してユーザーに印刷ができないことを伝えます。


3行目【Cancel = True】
Workbook_BeforePrint(Cancel As Boolean)イベントプロシージャーの引数Cancel【キャンセル】にTrueを設定してブックの印刷操作を停止します。通常ブックの印刷操作を実行するとWorkbook_BeforePrint(Cancel As Boolean)イベントプロシージャーの引数Cancel【キャンセル】にはFalseが渡されますが、Trueを渡すことによりイベントプロシージャーを途中で停止します。


実行結果

印刷をクリックします。



ダイアログボックスが表示されて印刷をキャンセルします。



以上で、シートの印刷をできないようにする方法についての解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク