Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


22474 / 76738 ←次へ | 前へ→

【59646】Re:IE操作中のポップアップの処理
お礼  あつし  - 08/12/28(日) 1:25 -

引用なし
パスワード
   熊谷隆史 さん,こんばんは。あつしです。
まず、報告が遅くなりましたことをお詫びします。
そして、数々の事細かなアドバイス、本当にありがとうございました。
熊谷さんのアドバイスにより、解決に至ることが出来ました。

で、報告ですが、やはり自分の環境(XP_Home & Excell_2003)では、熊谷さんのソースそのままでは思ったように動作してくれませんでした。
その理由は自分には全くの??なのですが、以下に自分の修正した点を報告させていただきます。
簡単に言えば熊谷さんの二案の組み合わせなのですが、

Option Explicit
Private Declare Function GetLastActivePopup Lib "user32" _
    (ByVal hwndOwnder As Long) As Long
Private Declare Function PostMessage Lib "user32" _
    Alias "PostMessageA" (ByVal hwnd As Long, _
    ByVal Msg As Long, ByVal wParam As Long, _
    ByVal lParam As Long) As Long
Private Const WM_COMMAND = &H111

Sub test()
  Dim hDlg As Long
  Dim objIE As Object
  Dim obj As Object
  Set objIE = CreateObject("InternetExplorer.Application")
  With objIE
   .Visible = True
   .navigate ""
  End With

  While objIE.Busy or objIE.Document.ReadyState <> "complete"
    DoEvents
  Wend

  For Each obj In objIE.Document.all
    If obj.tagName = "INPUT" Then
      If obj.Value = "投  票" Then
        objIE.Document.Script.setTimeout "javascript:obj.click", 1000
        Sendkeys "{Enter}"
        Exit For
      End If
    End If
  Next

  'ダイアログのウィンドウハンドルを取得。
  Do
    DoEvents
    hDlg = GetLastActivePopup(objIE.hwnd)
  Loop Until hDlg <> objIE.hwnd
  
  'ダイアログのOKボタン押下
  PostMessage hDlg, WM_COMMAND, vbOK, 0

End Sub

以上のように Sendkeys と APIの併用で予定の動作を行うことが出来ました。
(実際には複数のプロシージャーに分けて書いた物を、ひとつにまとめてみました。)

問題は、[59379]でも書いたように
  Dim oIE As Object
  Dim oSH As Object
  
  Set oSH = CreateObject("Shell.Application")
  
  For Each oIE In oSH.Windows
    While oIE.Busy Or oIE.readyState <> 4
     DoEvents
    Wend
  Next
のようなコードを書いても、投票結果のIEウィンドウが表示される前に、次の命令を実行し始めることです。
ただ、こちらはSleep等の命令を使い、十分な間隔をあけることで何とか対処できるのでしばらくはその手で行こうと思います。
それで不具合が出るようでしたら、またこちらに相談させていただきたく思います。

今回は本当にありがとうございました。
4 hits

【59038】IE操作中のポップアップの処理 あつし 08/11/24(月) 15:26 質問
【59039】Re:IE操作中のポップアップの処理 かみちゃん 08/11/24(月) 15:39 発言
【59053】Re:IE操作中のポップアップの処理 あつし 08/11/25(火) 0:05 発言
【59054】Re:IE操作中のポップアップの処理 ichinose 08/11/25(火) 5:51 発言
【59055】Re:IE操作中のポップアップの処理 あつし 08/11/25(火) 9:51 発言
【59062】Re:IE操作中のポップアップの処理 ichinose 08/11/25(火) 20:46 発言
【59069】Re:IE操作中のポップアップの処理 あつし 08/11/26(水) 13:49 発言
【59199】Re:IE操作中のポップアップの処理 あつし 08/12/2(火) 10:30 発言
【59243】Re:IE操作中のポップアップの処理 熊谷隆史 08/12/3(水) 12:06 発言
【59258】Re:IE操作中のポップアップの処理 あつし 08/12/3(水) 21:55 発言
【59276】Re:IE操作中のポップアップの処理 熊谷隆史 08/12/4(木) 12:02 発言
【59298】Re:IE操作中のポップアップの処理 あつし 08/12/5(金) 11:43 発言
【59307】Re:IE操作中のポップアップの処理 熊谷隆史 08/12/5(金) 15:37 発言
【59308】Re:IE操作中のポップアップの処理 熊谷隆史 08/12/5(金) 17:08 発言
【59323】Re:IE操作中のポップアップの処理 熊谷隆史 08/12/6(土) 12:29 発言
【59326】Re:IE操作中のポップアップの処理 熊谷隆史 08/12/6(土) 13:25 発言
【59379】Re:IE操作中のポップアップの処理 あつし 08/12/9(火) 10:33 発言
【59646】Re:IE操作中のポップアップの処理 あつし 08/12/28(日) 1:25 お礼
【59724】Re:IE操作中のポップアップの処理 熊谷隆史 09/1/4(日) 10:48 発言
【59732】Re:IE操作中のポップアップの処理 あつし 09/1/5(月) 10:45 お礼
【59741】Re:IE操作中のポップアップの処理 熊谷隆史 09/1/6(火) 12:06 発言
【59057】Re:IE操作中のポップアップの処理 かみちゃん 08/11/25(火) 12:56 発言
【59067】Re:IE操作中のポップアップの処理 あつし 08/11/26(水) 13:04 発言
【59076】Re:IE操作中のポップアップの処理 かみちゃん 08/11/26(水) 21:14 発言
【59096】Re:IE操作中のポップアップの処理 あつし 08/11/28(金) 12:16 発言
【59251】Re:IE操作中のポップアップの処理 Raiku 08/12/3(水) 19:43 発言

22474 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free