【お題】引っかけ問題(締め切り10月27日(日)23時)

お世話になります。
早速ですが、以下のコードでBeforePrintのイベントを利用していますが、
プリントボタンやCtrl+Pでは正常に動作するのですがプレビューボタンを押されたら
Cancel=Trueが効かず、プレビューが表示され、ユーザーフォームも開くので
Excelを制御出来なくなってしまいます。(タスクマネージャで落とすしかない)

プレビューでもCancel=Trueにする方法、またはプレビュー自体を禁止する方法
がありましたらご教授ください。

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Worksheets("設定").Range("B31").Value = True Then
 Cancel = True
 F_Print.Show 'F_Printはユーザフォーム
End If
End Sub

環境:Excel2000 SP3

A 回答 (1件)

当方エクセル2002ですが、これだとご質問例のマクロは正常に動作しました。



あまり良い方法とも思えませんが、CommandBarButtonのEnabledやVisibleプロパティを利用して、プレビューボタンを押せなくさせるのはいかがでしょうか。

例として、Worksheet_Activateイベントを使ってみました。コマンドバーの名前や、コントロールのIDはバージョンによって違いがあるかもしれません。

Private Sub Worksheet_Activate()
CommandBars("Standard").FindControl(ID:=109).Visible = False
CommandBars("File").FindControl(ID:=109).Visible = False
End Sub

Private Sub Worksheet_Deactivate()
CommandBars("Standard").FindControl(ID:=109).Visible = True
CommandBars("File").FindControl(ID:=109).Visible = True
End Sub
    • good
    • 0
この回答へのお礼

sakenomo様
ありがとうございました。思っていたことが実現できました。
今回はvisibleではなくEnabledを使うことにしました。

2000はなぜCancelにならないのかは不思議です。

CommandBars("Standard").FindControl(ID:=109).Enabled = False
CommandBars("File").FindControl(ID:=109).Enabled = False

お礼日時:2004/02/06 09:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報