VBA在IE11中的“打印预览”窗口中单击

时间:2017-09-17 13:37:57

标签: vba internet-explorer

我想编写一个宏来点击IE11中打印预览窗口中的打印图标(Alt + P)。 我想过使用 FindWindow,FindWindowEx,SendMessage和PostMessage函数。 但是当我检查窗口信息时,似乎没有单击打印图标的按钮。Print Preview Window Info

无论我在窗口中单击,它都只显示Class中的InternetExplorer_TridentDlgFrame。那么我该如何点击打印图标呢?

我不想使用Sendkeys或根据位置执行鼠标点击,因为我将在不同的系统中使用此宏。

那么有没有合适的方法呢?任何想法都会非常有用。提前谢谢。

1 个答案:

答案 0 :(得分:0)

试试这段代码

详情请见https://msdn.microsoft.com/en-us/library/aa752117(v=vs.85).aspx

Option Explicit

Sub printIE()

    Const OLECMDID_PRINT = 6            ' declarations needed for late binding only if mnemonics are desired in ExecWB command
    Const OLECMDID_PRINTPREVIEW = 7

    Const OLECMDEXECOPT_DODEFAULT = 0
    Const OLECMDEXECOPT_PROMPTUSER = 1
    Const OLECMDEXECOPT_DONTPROMPTUSER = 2
    Const OLECMDEXECOPT_SHOWHELP = 3

    Dim IE As Object                    ' late binding

'   Dim IE As InternetExplorer          ' early binding ... reference microsoft internet controls

    Set IE = CreateObject("InternetExplorer.Application")

'   IE.Visible = True
    IE.navigate ("google.co.in")

    Do Until IE.ReadyState = 4
    Loop

    IE.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DONTPROMPTUSER

'   IE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER

End Sub