VBAでIE11のサイトを操作し、ダウンロード通知バーの「保存(S)」を押したいと考えています
以下の通りコードを書き、IEが既に起動している場合は、最後の「InvokePattern.Invoke」が成功し、ダウンロードファイルを保存できます。
問題は、IEを起動していない場合は新しくIEを開いてsetしているのですが、オブジェクトが上手く取得できていないらしく、「InvokePattern.Invoke」の箇所がスルーされているようで、「保存(S)」を押せていないまま終了してしまいます。
どこを修正すればよいのか教えていただけないでしょうか。よろしくお願いいたします。

Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long

Private Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long

Sub データ取得()

Dim ie As Object
Dim objInpTxtArea As HTMLTextAreaElement
Dim Button As HTMLInputElement


'参照設定 Microsoft HTML Object Library

    Set ie = getIE
    Call ie.navigate("http://1.2.3.4/logon.do")
    ie.Visible = True

    Do While ie.busy Or ie.readystate < 4
        DoEvents
        Sleep (10)
    Loop    

    'IDとパスワードを入れてログイン
    Set objInpTxtArea = ie.document.getElementsByName("user")(0)

    '検索条件などの操作を入力

    'ダウンロードボタンを押す
    Set Button = ie.document.getElementById("dButton")
    Button.Click
    Set Button = Nothing


Dim AutomationObj As IUIAutomation
Dim WindowElement As IUIAutomationElement
Dim button2 As IUIAutomationElement
Dim hWnd As Long

Set AutomationObj = New CUIAutomation

hWnd = ie.hWnd
hWnd = FindWindowEx(hWnd, 0, "Frame Notification Bar", vbNullString)
If hWnd = 0 Then Exit Sub

SetForegroundWindow (hWnd)
Sleep 8000

Set WindowElement = AutomationObj.ElementFromHandle(ByVal hWnd)
Dim iCnd As IUIAutomationCondition
Do
DoEvents
Sleep 1&
Set iCnd = AutomationObj.CreatePropertyCondition(UIA_NamePropertyId, "保存")
Loop While iCnd Is Nothing

Set button2 = WindowElement.FindFirst(TreeScope_Subtree, iCnd)
Dim InvokePattern As IUIAutomationInvokePattern
Set InvokePattern = button2.GetCurrentPattern(UIA_InvokePatternId)
InvokePattern.Invoke

End Sub

Public Function getIE() As Object
    Dim objSh As Object
    Dim objW As Object
    Dim i As Integer

    'IEがすでに立ち上がっている場合はそれを活用する
    Set objSh = CreateObject("Shell.Application")
    For i = objSh.Windows.Count To 1 Step -1
        Set objW = objSh.Windows(i - 1)
        If objW.FullName Like "*IEXPLORE.EXE" Then
          Set getIE = objW
          Exit Function
        End If
    Next

    '見つからなかった場合は新規作成する
    Set getIE = New InternetExplorer
    getIE.Visible = True

End Function