デバッグを実施しましたが実行できません
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2016年7月26日(火)05時14分 From: 管理人 | 返事 削除 変更 |
こちらはサブルーチンになりますので、単独で処理を実行することはできません。 実際には、以下のように記述して利用します。 '▼サブルーチンを利用して複数サイトをIEで起動させるマクロ Sub sample() Dim objIE As InternetExplorer Dim objIE2 As InternetExplorer '本サイトをIEで起動 Call ieView(objIE, "http://www.vba-ie.net/") 'yahooサイトをIEで起動 Call ieView(objIE2, "http://www.yahoo.co.jp/") End Sub ※サブルーチンと使い方については、こちらを熟読ください。 【サブルーチン化】 http://www.vba-ie.net/ie/subroutine1.html 【指定URLをInternetExplorerで起動するサブルーチン】 http://www.vba-ie.net/ie/subroutine2.html > web内の記述事例を標準モジュール内にmodule1を挿入後、取り込み(コピー貼り付 > け)、参照設定変更後 > > デバッグを実施しましたが実行できません。 > > それとマクロ名も表示されません。. > > この講座内には各種事例がありますが,取り込み(コピー貼り付け)する場合どのよう > にすれば > > マクロとして利用可能でしょうか? > > > > > > > > (下記がmodule1内に取り込んだ記述です↓) > > > > Option Explicit > > #If VBA7 Then > > Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr) > > #Else > > Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long) > > #End If > > > > Sub ieCheck(objIE As InternetExplorer) > > > > Dim timeOut As Date > > > > '完全にページが表示されるまで待機する > > timeOut = Now + TimeSerial(0, 0, 20) > > > > Do While objIE.Busy = True Or objIE.ReadyState <> 4 > > DoEvents > > Sleep 1 > > If Now > timeOut Then > > objIE.Refresh > > timeOut = Now + TimeSerial(0, 0, 20) > > End If > > Loop > > > > timeOut = Now + TimeSerial(0, 0, 20) > > > > Do While objIE.document.ReadyState <> "complete" > > DoEvents > > Sleep 1 > > If Now > timeOut Then > > objIE.Refresh > > timeOut = Now + TimeSerial(0, 0, 20) > > End If > > Loop > > > > End Sub > > > > Sub ieView(objIE As InternetExplorer, _ > > urlName As String, _ > > Optional viewFlg As Boolean = True, _ > > Optional ieTop As Integer = 0, _ > > Optional ieLeft As Integer = 0, _ > > Optional ieWidth As Integer = 600, _ > > Optional ieHeight As Integer = 800) > > > > 'IE(InternetExplorer)のオブジェクトを作成する > > Set objIE = CreateObject("InternetExplorer.Application") > > > > With objIE > > > > 'IE(InternetExplorer)を表示・非表示 > > .Visible = viewFlg > > > > .Top = ieTop 'Y位置 > > .Left = ieLeft 'X位置 > > .Width = ieWidth '幅 > > .Height = ieHeight '高さ > > > > '指定したURLのページを表示する > > .navigate urlName > > > > End With > > > > 'IE(InternetExplorer)が完全表示されるまで待機 > > Call ieCheck(objIE) > > > > End Sub |
Message#1 2016年7月26日(火)05時11分 From: しげじい | 返事 削除 変更 |
web内の記述事例を標準モジュール内にmodule1を挿入後、取り込み(コピー貼り付 け)、参照設定変更後 デバッグを実施しましたが実行できません。 それとマクロ名も表示されません。. この講座内には各種事例がありますが,取り込み(コピー貼り付け)する場合どのよう にすれば マクロとして利用可能でしょうか? (下記がmodule1内に取り込んだ記述です↓) Option Explicit #If VBA7 Then Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr) #Else Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long) #End If Sub ieCheck(objIE As InternetExplorer) Dim timeOut As Date '完全にページが表示されるまで待機する timeOut = Now + TimeSerial(0, 0, 20) Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Sleep 1 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 20) End If Loop timeOut = Now + TimeSerial(0, 0, 20) Do While objIE.document.ReadyState <> "complete" DoEvents Sleep 1 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 20) End If Loop End Sub Sub ieView(objIE As InternetExplorer, _ urlName As String, _ Optional viewFlg As Boolean = True, _ Optional ieTop As Integer = 0, _ Optional ieLeft As Integer = 0, _ Optional ieWidth As Integer = 600, _ Optional ieHeight As Integer = 800) 'IE(InternetExplorer)のオブジェクトを作成する Set objIE = CreateObject("InternetExplorer.Application") With objIE 'IE(InternetExplorer)を表示・非表示 .Visible = viewFlg .Top = ieTop 'Y位置 .Left = ieLeft 'X位置 .Width = ieWidth '幅 .Height = ieHeight '高さ '指定したURLのページを表示する .navigate urlName End With 'IE(InternetExplorer)が完全表示されるまで待機 Call ieCheck(objIE) End Sub |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降