2016-05-26 3 views
0

サイトを検索しましたが、これに対する回答が見つかりませんでした。Print-to-PDFマクロボタンを使用する場合を除いて、Excelワークブックの印刷を無効にするにはどうすればよいですか?

背景:このマクロはワークシート上のボタンとして使用しています。それは私が必要なものに適しています:私は今行う必要がある何

Sub FactSheetSaveToPDF() 

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
"C:\" & Range("b2") & " - " & Month(Date) & "." & Day(Date) & "." &  Year(Date) & "." _ 
     & Hour(Time) & Minute(Time) & Second(Time) & ".pdf",  Quality:=xlQualityStandard, _ 
IncludeDocProperties:=True, IgnorePrintAreas:=False, _ 
OpenAfterPublish:=True 
End Sub 

は、ユーザーがONLY、コンプライアンス上の理由から、これらのボタンを使用して印刷できるように、それを作るです。したがって、通常の印刷が禁止されているかどうかにかかわらず、このExcel文書のユーザーは、ボタンを押してPDFに印刷する場合にのみワークシートを印刷することができます。誰かがこのマクロボタンの外側に印刷する機能はありません。 Ctrl + P、ファイル印刷、すべて許可されていません。

マクロからの印刷を含め、すべての印刷を無効にする回答が1つ見つかりました。これは動作しません。 Print-to-PDFマクロボタンが機能する必要があります。

ユーザーが開いている可能性のあるすべての印刷を無効にする別の回答が表示されました。これは一人の人にとってはあまりにも多くの力です。私はこの特定のExcel文書から印刷を無効にしたいだけです。

すべての印刷を無効にするコードを作成し、その印刷ボタンのマクロを例外として修正する必要があると想定しています。

あなたが私の母国語で気づいていないなら、私はVBAで初心者です。できるだけシンプルにしようとしています。私はどんな助けにも大いに感謝します。

+1

はあなたが望むものを達成するためのワークブックBeforePrintイベントマクロを使用してもらえますか?イベントで - あなたのボタンが呼び出すマクロを呼び出します。ここでプリンタを選択することもできます。 –

答えて

1

簡単。ワークブックのコード領域でこれを使用します。

Private Sub Workbook_BeforePrint(Cancel As Boolean) 
    Cancel = True 
End Sub 

これは、ユーザーを停止しますが、あなたのボタンのコードになります:

Sub FactSheetSaveToPDF() 
    Application.EnableEvents = False 
     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
      "C:\" & Range("b2") & " - " & Month(Date) & "." & Day(Date) & "." & Year(Date) & "." _ 
       & Hour(Time) & Minute(Time) & Second(Time) & ".pdf", Quality:=xlQualityStandard, _ 
      IncludeDocProperties:=True, IgnorePrintAreas:=False, _ 
      OpenAfterPublish:=True 
    Application.EnableEvents = True 
End Sub 
+0

ゲイリー - これは完璧に働いた、ありがとう。私は、Excelが壊れていないことをユーザーに知らせるメッセージボックスを追加しようとしますが、印刷は無効になっています。とても有難い - – PMC

関連する問題