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も見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBA IE ダウンロード ダイアログ制御(名前を付けて保存)
Visual Basic(VBA)
-
vbaでIEの名前を付けて保存(A)をしたい
Microsoft ASP
-
VBA IE操作でダイアログ表示後、ファイルを開くボタンが押下できない
Visual Basic(VBA)
-
-
4
IE操作時、ファイルのダウンロードボタンの押下
Visual Basic(VBA)
-
5
IEのダウンロード通知バーのVBA制御(保存他)
Visual Basic(VBA)
-
6
Alt+P,Alt+NをPostmessageで送るには
Visual Basic(VBA)
-
7
Excelのマクロを実行中に、ダウンロード中のダイアログが表示されます。キャンセルを押下すると動くの
Excel(エクセル)
-
8
VBA IE通知バーの制御 バー内のボタン 開く/保存/キャンセルを押す
Visual Basic(VBA)
-
9
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
10
Webページ中の javascript をVBAから実行するには
Visual Basic(VBA)
-
11
VBAでBook読み込み時の非表示方法は??
Visual Basic(VBA)
-
12
(UWSC) 「#32770」の意味わかりますか?
その他(プログラミング・Web制作)
-
13
ExcelVBAでAPIを使って外部ウインドウのエディットテキストを取得する方法
Visual Basic(VBA)
-
14
ウィンドウにキー送信で ENTER を送りたい
Visual Basic(VBA)
-
15
VBAでIEの「ファイルのダウンロード」ダイアログを制御
Visual Basic(VBA)
-
16
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
17
WEBページからのメッセージをVBAで
Visual Basic(VBA)
-
18
今更、VBAでRPA、キーボード操作自動化ってどうやるの?
Visual Basic(VBA)
-
19
Excel VBAで他アプリケーションの文字列取得
Excel(エクセル)
-
20
VBAでIEを操作、ポップアップされた画面の処理(Enter)を行いたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ボタンをマウスで押し続けたと...
-
セルをマクロのボタンにしたい。
-
ASP.Net ラベルの内容をすぐに...
-
フォームの再読み込み
-
ボタン
-
VBAのボタンの位置が変わって困...
-
Excel VBA ボタンを非アクティ...
-
VB 電卓 数字キーを押して...
-
C#でExcel上にボタンを作成したい
-
テラパッドを使ってるんですが...
-
VBA CommandButtonの文字ずれ
-
VBAで多数のプログラムを一つの...
-
excel シート上のボタンが動かない
-
VB.net でトグルボタンを実現し...
-
ユーザーフォームに別シートか...
-
MS-OUTLOOK VBA 投票ボタン
-
コマンドボタンの長押し
-
コマンドボタンの文字色
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
Excel VBA Application.caller...
-
コマンドボタンやイメージにマ...
-
Access VBA でデータペーストを...
-
VBAのボタンの位置が変わって困...
-
ボタンをマウスで押し続けたと...
-
ボタン
-
C#プログラムで、ボタンをショ...
-
VBA でのボタンの移動について
-
閉じると「+」になり開くと「-...
-
ダウンロードダイアログをVB...
-
[Excel VBA]コマンドボタンの入...
-
ASP.Net ラベルの内容をすぐに...
-
プロシージャからイベントをコ...
-
CommandButtonのCaptionを変化...
おすすめ情報