A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>やれるならsendkeysでやろうと思っています。
個人的には、このメソッドは嫌いですが、sendkeysでやることに反対はしません。
徹夜サポで暇してます。
ここを参考にやってみました。
http://okwave.jp/kotaeru.php3?q=894824
sendkeysは使用しておりませんが、もし使用する場合にも参考になるかと思います^^
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare 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 Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetDlgCtrlID Lib "user32" (ByVal hwnd As Long) As Long
Private Const WM_COMMAND As Long = &H111
Private Const CLASSNAME_ダイアログ As String = "#32770"
Private Const CLASSNAME_ボタン As String = "Button"
Private Sub Test()
Const STEP1_TITLE As String = "ファイルのダウンロード"
Const STEP2_TITLE As String = "名前を付けて保存"
Dim l_lngWnd_Window_Step1 As Long
Dim l_lngWnd_Window_Step2 As Long
'step1
If Not FindDialog(STEP1_TITLE, l_lngWnd_Window_Step1) Then
Exit Sub
End If
Call PushSaveBtn(l_lngWnd_Window_Step1)
'step2
If Not FindDialog(STEP2_TITLE, l_lngWnd_Window_Step2) Then
Exit Sub
End If
Call PushSaveBtn(l_lngWnd_Window_Step2)
End Sub
'ダイアログを探す
Private Function FindDialog(ByVal p_strCaption As String, ByRef p_lngFindWnd As Long) As Boolean
p_lngFindWnd = 0
Do
DoEvents
' If Not IEがBUSY Then
' Exit Do
' End If
p_lngFindWnd = FindWindow(CLASSNAME_ダイアログ, p_strCaption)
Loop While p_lngFindWnd = 0
FindDialog = p_lngFindWnd <> 0
End Function
'ボタンを押す
Private Sub PushSaveBtn(ByVal p_lngWindowWnd As Long, Optional p_strBtnCaption As String = "保存(&S)")
Dim l_lngWnd_Save As Long
l_lngWnd_Save = FindWindowEx(p_lngWindowWnd, 0, CLASSNAME_ボタン, p_strBtnCaption)
Call SendMessage(p_lngWindowWnd, WM_COMMAND, GetDlgCtrlID(l_lngWnd_Save), ByVal l_lngWnd_Save)
End Sub
No.1
- 回答日時:
確かXPのSPの状況によって、ダウンロードダイアログの出方が異なったと思います。
さらにOS別を考慮すると、さらにパターンが増えます。
個別のSendKeysパターンを網羅するプログラムを組むか、WM_COMMANDでOKボタンを押させる必要があると思います。
http://okwave.jp/kotaeru.php3?q=199357
この回答への補足
ご回答ありがとうございます。
対象OSは限定ですので(XP SP2)
やれるならsendkeysでやろうと思っています。
sendkeysを送るタイミングも不明で、
busyを検知しておけばいいかと思ったら、
ダウンロードダイアログが表示してる間はbusyの
ようで状況把握を何のプロパティで確認すれば
よいかわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- マウス・キーボード real vnc viewer で遠隔先で操作が出来ない。 2 2023/07/24 15:00
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- 電子レンジ・オーブン・トースター 電子レンジの非科学的(カルト的)動作の原因について考えられる理由を知りたい 8 2022/11/29 14:47
- その他(パソコン・スマホ・電化製品) タブレットにナビゲーションバーを表示させたい。 1 2022/07/24 20:34
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- その他(IT・Webサービス) サイト上のフォルダ階層一覧、ファイル一覧を閲覧する方法は? 1 2022/11/11 15:49
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBA IE ダウンロード ダイアログ制御(名前を付けて保存)
Visual Basic(VBA)
-
vbaでIEの名前を付けて保存(A)をしたい
Microsoft ASP
-
VBA IE操作でダイアログ表示後、ファイルを開くボタンが押下できない
Visual Basic(VBA)
-
-
4
IE操作時、ファイルのダウンロードボタンの押下
Visual Basic(VBA)
-
5
Alt+P,Alt+NをPostmessageで送るには
Visual Basic(VBA)
-
6
VBA IE通知バーの制御 バー内のボタン 開く/保存/キャンセルを押す
Visual Basic(VBA)
-
7
IEのダウンロード通知バーのVBA制御(保存他)
Visual Basic(VBA)
-
8
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
9
Excelのマクロを実行中に、ダウンロード中のダイアログが表示されます。キャンセルを押下すると動くの
Excel(エクセル)
-
10
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
11
ExcelVBAでAPIを使って外部ウインドウのエディットテキストを取得する方法
Visual Basic(VBA)
-
12
Excel VBAで他アプリケーションの文字列取得
Excel(エクセル)
-
13
VBAでIEの「ファイルのダウンロード」ダイアログを制御
Visual Basic(VBA)
-
14
親ウインドウにあるOKボタンを押す方法
Visual Basic(VBA)
-
15
Excel VBAでIE「ダウンロードの表示」生成
Excel(エクセル)
-
16
VBAでBook読み込み時の非表示方法は??
Visual Basic(VBA)
-
17
WEBページからのメッセージをVBAで
Visual Basic(VBA)
-
18
Webページ中の javascript をVBAから実行するには
Visual Basic(VBA)
-
19
ExcelマクロでIEのHP上のダウンロードボタンをクリックし、ファイルをダウンロードする方法
Visual Basic(VBA)
-
20
今更、VBAでRPA、キーボード操作自動化ってどうやるの?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
フォームの再読み込み
-
Access VBA でデータペーストを...
-
ユーザーフォームに別シートか...
-
セルをマクロのボタンにしたい。
-
.NET(VB)でボタンの連打を防止...
-
プロシージャからイベントをコ...
-
VBA(エクセル)で自動的にボタン...
-
F10ボタンでMsgboxを開くとwind...
-
他フォームのクリックイベント取得
-
エクセルVBAでユーザーフォーム...
-
オプションボタンによっての表...
-
Excel マクロ 閉じるボタン
-
動的に作成したボタンオブジェ...
-
ボタンの状態
-
button をクリックしてもへこま...
-
ボタンコントロールの改行(Win...
-
【vb2005】 動的に作成されたCo...
-
初歩の質問です。
-
[Excel VBA]コマンドボタンの入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
Excel VBA Application.caller...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
プロシージャからイベントをコ...
-
他のアプリケーションとの連携
-
閉じると「+」になり開くと「-...
-
C#で動的に作ったtextboxを消す。
-
ボタンをマウスで押し続けたと...
-
VBA でのボタンの移動について
-
ボタン
-
CommandButtonのCaptionを変化...
-
TextBoxでEnterキーを押すと、...
-
VB.net でトグルボタンを実現し...
おすすめ情報