VBAでユーザーにExcelファイルを印刷してほしくない場合。
印刷を制御し、印刷できないようにする方法を調べてみた。
まずは、ThisWorkbookのソースコードに「Workbook_BeforePrint」(ワークブックプリント前イベント)を追加する。
ソースコードの上あたりにあるプルダウンで、以下を選択し、サブプロシージャを追加する。
- オブジェクト…「Workbook」
- プロシージャ…「BeforePrint」
そのサブプロシージャの中に、引数「Cancel」に値「True」を設定してやれば、そのExcelファイルは印刷することができなくなる。
なお、この設定だけでは何もメッセージなどは表示されずに、印刷ボタンが反応しなくなるだけなので、別途メッセージを表示させるようにしてやる方が、ユーザーには優しいかなと思います。
実際のソースは以下のような感じです。
'ワークブックプリント前イベント Private Sub Workbook_BeforePrint(Cancel As Boolean) 'メッセージ表示 MsgBox "このファイルは印刷できません。", vbCritical 'プリント不可に設定 Cancel = True End Sub
以上。
コメント