- 締切済み
エクセルBVAが時々うまくいくのですが・・・
「ExcelVBAでIEを思いのままに操作できるプログラミング術」という本の中の [[http://store.tsutaya.co.jp/item/rental_dvd/089704291.html]このページの"店舗を指定して在庫検索"ボタンを押す、という動作をさせるマクロ]について質問があります。 本を見ながら写してみました。 ページを開いた上でマクロを動かすと"店舗を指定して在庫検索"ボタン押され、画面が変わるマクロです。 基本的に動かないのですが([完了しました]というメッセージのみが出てきます)、 ごく稀に(頻度としては10回に1回ほど)正常に動作します ([クリックしました]とメッセージが表示され、画面が変わり[完了しました]というメッセージが出てくる)。 なぜ時々うまく動作するのか分かる方いらっしゃいましたら教えてください。 よろしくお願いいたします。 マクロの内容は下のような内容です。 --------------------------------- Option Explicit Private Declare Sub Sleep Lib "kernel32" (ByVal dwmilliseconds As Long) --------------------------------- Private Function getIe(argTitle As String) As InternetExplorer Dim ie As InternetExplorer Dim sh As Object Dim win As Object Dim documentTitle As String Set sh = CreateObject("Shell.Application") For Each win In sh.Windows documentTitle = "" On Error Resume Next documentTitle = win.document.Title On Error GoTo 0 If InStr(documentTitle, argTitle) > 0 Then Set ie = win Exit For End If Next Set getIe = ie End Function --------------------------------- Private Sub waitBrowsing(ie As InternetExplorer) Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE Sleep 1 DoEvents Loop End Sub --------------------------------- Private Sub getStock() Dim ie As InternetExplorer Set ie = getIe("TSUTAYA") Dim htdoc As HTMLDocument Set htdoc = ie.document Dim img As HTMLImg For Each img In htdoc.getElementsByTagName("IMG") If InStr(img.alt, "店舗を指定して在庫検索") > 0 Then img.Click MsgBox "クリックしました" Exit For End If Next MsgBox "完了しました" End Sub ---------------------------------
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kumatti1
- ベストアンサー率60% (73/121)
何となくZipファイルの更新日付を見ると直されてるのではと思います。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12128617847 http://www.impressjapan.jp/books/3384_4