2009-09-03 23 views
4

excelのBefore_Printイベントを傍受して、シートを印刷する前にユーザーがすべての必須フィールドに入力していることを確認するコードがあります。しかし、ユーザーが実際に印刷しているときだけ、印刷プレビューを呼び出すときではなく、このコードを有効にします。Excelの印刷プレビューイベントと印刷プレビューイベントの違い

Before_Printコードで、ユーザーが実際に印刷しているかプレビューしているかどうかを確認する方法はありますか?私は、イベントが印刷プレビューや印刷要求であるかどうかを判断するためにきちんとした方法があるとは思わない

Private Sub Workbook_BeforePrint(Cancel As Boolean) 
    If Not Sheet2.CheckAllFieldsFilled Then 
     Cancel = True 
    End If 
End Sub 

答えて

0

:私は現在持っている

コードは(エクセルによって生成されたイベントスタブ)です。

以下の解決策は、特にきちんとしたものではなく、ユーザーには少し不便ですが、機能します。

コードは、イベントをキャンセルしてから、ユーザーの応答に基づいて印刷プレビューまたは印刷物を表示します。

Private Sub Workbook_BeforePrint(Cancel As Boolean) 

Dim Print_or_Preview As XlYesNoGuess 

Application.EnableEvents = False 

    Cancel = True 
    Print_or_Preview = MsgBox("Show Print Preview?", vbYesNo) 

    If Print_or_Preview = True Then 
     ActiveWindow.ActiveSheet.PrintPreview 
     Else 
     ActiveWindow.ActiveSheet.PrintOut 
    End If 
Application.EnableEvents = True 

End Sub 
0

印刷プレビューをしたいときにユーザーがプッシュするための非常に目立つボタンを提供すると思います。

は(ボタンのオプションで)印刷用ボタンの非表示を作成し、コードを持っているだけで言う:へ

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True 

ActiveWindow.ActiveSheet.PrintPreview 
0

は、あなたがこのような何かを行うことができます印刷するには提案されたとおりの印刷プレビュー:

ActiveWindow.ActiveSheet.PrintPreview 

それぞれ異なるボタンが必要です彼女の方法では、プレビューボタンがあなたの印刷オプションのために働くかもしれないので、本当に両方が必要かどうかをテストすることを強くお勧めします。特に、ほとんどの場合プレビューから直接印刷できるからです。

私はここで間違っているかもしれませんが、私はそうは思わないでしょう。

私がここに投稿した印刷オプションは、スクリプトにコード化されているため、オプションを要求しません。印刷するコピーの数を変更するには、 copies:=あなたが望む番号に...

お楽しみください:)