如何使用vb.net检测Excel 2003的打印预览窗口?

时间:2010-08-05 08:07:27

标签: vb.net excel vsto

我需要能够测试当前视图是否是Excel 2003中的打印预览。

excel对象模型中是否有东西可以简单地访问此属性? (就像Word对象模型中的application.printpreview一样......)。

任何建议都非常受欢迎,

由于

于连

PS:长话短说,我正在为我的自定义功能开发一个带键盘快捷键的vsto插件,我需要在打印预览时禁用此快捷键。

1 个答案:

答案 0 :(得分:0)

您需要确定它是否在xlPageBreakPreview

If Windows(1).View = xlPageBreakPreview Then
    ''# do your thing
End If

请注意,Windows(1)始终表示“活动视图”。

编辑:重新阅读问题并看到您的意思是实际的打印预览窗口。这是Application.Dialogs(xlDialogPrintPreview)的对话框。它唯一的方法是.Show。但是,当对话框打开时,代码不会运行并不重要。它只会返回两个值 - TrueFalse。因此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