1
我需要能夠測試當前視圖是否在Excel 2003中進行打印預覽。如何使用vb.net檢測Excel 2003的打印預覽窗口?
是否存在某種簡單訪問此屬性的Excel對象模型? (如Word對象模型中的application.printpreview ...)。
任何意見將是更受歡迎,
感謝
朱利安
PS:長話短說,我正在開發使用鍵盤快捷鍵來我的自定義功能的插件VSTO和打印預覽時,我需要禁用此快捷方式。
我需要能夠測試當前視圖是否在Excel 2003中進行打印預覽。如何使用vb.net檢測Excel 2003的打印預覽窗口?
是否存在某種簡單訪問此屬性的Excel對象模型? (如Word對象模型中的application.printpreview ...)。
任何意見將是更受歡迎,
感謝
朱利安
PS:長話短說,我正在開發使用鍵盤快捷鍵來我的自定義功能的插件VSTO和打印預覽時,我需要禁用此快捷方式。
你要確定它是否在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
感謝您的回答。 但它不會工作,因爲你也可以直接在工作表上查看分頁符(我仍然測試過)... – 2010-08-05 16:06:34
@Julien V .:對不起,我誤解了這個問題。請參閱上面的更新。 – 2010-08-05 16:22:51
再次感謝您的快速回答,但我不確定這是我要找的。 據我瞭解,您的代碼將啓動打印預覽,並告訴我們用戶用它做了什麼。 我需要的是能夠在任何時候知道用戶是否真的看到了打印預覽窗口。 PS:我正在使用vb.net和VSTO,所以代碼在打印預覽時正在運行... – 2010-08-05 16:38:20