VBAでExcelファイルを印刷できないようにする方法

VBA プログラミング
この記事は約2分で読めます。

※当ブログではアフィリエイト広告を利用しています。

VBAでユーザーにExcelファイルを印刷してほしくない場合。

印刷を制御し、印刷できないようにする方法を調べてみた。

まずは、ThisWorkbookのソースコードに「Workbook_BeforePrint」(ワークブックプリント前イベント)を追加する。

ソースコードの上あたりにあるプルダウンで、以下を選択し、サブプロシージャを追加する。

  • オブジェクト…「Workbook」
  • プロシージャ…「BeforePrint」

そのサブプロシージャの中に、引数「Cancel」に値「True」を設定してやれば、そのExcelファイルは印刷することができなくなる。

なお、この設定だけでは何もメッセージなどは表示されずに、印刷ボタンが反応しなくなるだけなので、別途メッセージを表示させるようにしてやる方が、ユーザーには優しいかなと思います。

実際のソースは以下のような感じです。

'ワークブックプリント前イベント
Private Sub Workbook_BeforePrint(Cancel As Boolean)

    'メッセージ表示
    MsgBox "このファイルは印刷できません。", vbCritical

    'プリント不可に設定
    Cancel = True
End Sub

以上。

コメント

タイトルとURLをコピーしました