我需要能够测试当前视图是否是Excel 2003中的打印预览。
excel对象模型中是否有东西可以简单地访问此属性? (就像Word对象模型中的application.printpreview一样......)。
任何建议都非常受欢迎,
由于
于连
PS:长话短说,我正在为我的自定义功能开发一个带键盘快捷键的vsto插件,我需要在打印预览时禁用此快捷键。答案 0 :(得分:0)
您需要确定它是否在xlPageBreakPreview
If Windows(1).View = xlPageBreakPreview Then
''# do your thing
End If
请注意,Windows(1)
始终表示“活动视图”。
编辑:重新阅读问题并看到您的意思是实际的打印预览窗口。这是Application.Dialogs(xlDialogPrintPreview)
的对话框。它唯一的方法是.Show
。但是,当对话框打开时,代码不会运行并不重要。它只会返回两个值 - True
和False
。因此True
表示打印了某些内容,而False
表示关闭对话框而不打印。您可以通过执行以下操作来返回值:
dlgPrinted = Application.Dialogs(xlDialogPrintPreview).Show
If dlgPrinted Then
Debug.Print "The worksheet was printed"
Else
Debug.Print "The user closed print preview without printing."
End If