アプリ版:「スタンプのみでお礼する」機能のリリースについて

IE9のダウンロード通知バーをVBAから制御する方法について、下記のQ&Aでkumatti1さんの解にあるコードでは「保存」をさせる動作となっています。これを「名前に付けて保存」させることはできないでしょうか。よろしくお願いします。
http://okwave.jp/qa/q8121989.html

--------------------------------------------------------------------------------
Option Explicit
'参照設定 UIAutomationClient
'C:\Windows\System32\UIAutomationCore.dll
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr

Sub hoge2()

Const url As String = ""
Dim ie As Object
Set ie = CreateObject("Shell.Application").Windows.findwindowSW(url, Empty, 1, 0, 1)
If ie Is Nothing Then Exit Sub

Dim o As IUIAutomation2
Dim e As IUIAutomationElement
Set o = New CUIAutomation8
Dim h As LongPtr

h = ie.Hwnd
h = FindWindowEx(h, 0, "Frame Notification Bar", vbNullString)
If h = 0 Then Exit Sub
Set e = o.ElementFromHandle(ByVal h)

Dim iCnd As IUIAutomationCondition
Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "保存")

Dim Button As IUIAutomationElement
Set Button = e.FindFirst(TreeScope_Subtree, iCnd)

Dim InvokePattern As IUIAutomationInvokePattern
Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId)
InvokePattern.Invoke

DoEvents
Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "通知バーのテキスト")
Dim iElemFound As IUIAutomationElement
Set iElemFound = e.FindFirst(TreeScope_Subtree, iCnd)
Dim iValuePattern As IUIAutomationValuePattern
Set iValuePattern = iElemFound.GetCurrentPattern(UIA_ValuePatternId)

Do
DoEvents
If iValuePattern.CurrentValue Like "*のダウンロードが完了しました。*" Then
Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "閉じる")
Set iElemFound = e.FindFirst(TreeScope_Subtree, iCnd)
Set InvokePattern = iElemFound.GetCurrentPattern(UIA_InvokePatternId)
InvokePattern.Invoke
Exit Do
End If
Loop

End Sub

--------------------------------------------------------------------------------

A 回答 (4件)

後は、先の保存ダイアログのコードと組み合わせて使うだけです。


以上。
    • good
    • 0
この回答へのお礼

kumatti1さん、ありがとうございました。これまでsendkeyを使って運用していましたが、不安定で困っていました。

お礼日時:2013/12/10 11:31

私には分からなかったので質問しました。

^^;

参考URL:http://www.moug.net/faq/viewtopic.php?t=68060
    • good
    • 0

状況は分かりましたけど、今の段階では質問ではなくて要望ですよね。


あまりVBAで書く人はいないのでググっても情報が出てこないだけで、.NET界隈ではオーソドックスなテクなので
ご自分で調査して書けないのであれば、有償で受け付けるサイトに頼んでみたらどうでしょうか。

# 私も調べて書くことにかわりないので。
    • good
    • 0

丁度、昨日書きました。

^^;

参考URL:http://www.moug.net/faq/viewtopic.php?t=68009

この回答への補足

kumatti1さん、コメントをありがとうございます。
前出のコードには大変驚かされました。
ただ、今回kumatti1さんがコメントされているのは、ieの[ファイル]-[名前を付けて保存(A)]に関する操作ではないでしょうか。
私が必要としているのは、ie9からのファイルダウンロードの際、通知バーに現れる「ファイルを開く(O)」「保存(S)」「キャンセル(C)」の中からSplitButtonの「保存(S)」を開いて、その中の「名前を付けて保存(A)」を選択し、ファイルの保存ダイアログを開き、ファイル名を指定してファイルを指定場所にダウンロードする方法なんです。
引き続き、何卒よろしくお願いいたします。

補足日時:2013/12/03 21:07
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!