今回の機能は、「Blogのログインページを開く」です。
Blogのログインページを開くにはNavigate2コマンドを使います。
■構文■Navigate2 url
url :表示したいアドレス(URL)を文字列型で指定
Return :戻り値なし
■例1■
Sub Sample1()
Dim objIE as Variant ’オブジェクト参照保存用
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate2 "http://www.google.com" ※1
End Sub
ココでの注意点は※1部分。
単にURLを開くだけであればコレで問題はありませんが、この処理自体は表示コマンドを発行した後、すぐに完了してしまうという事です。言い換えると、ページの表示が完了する前に次の処理に進んでしまうのです。
問題となる例としては、何か入力画面を表示して入力も自動化している場合。
ページが表示される(入力フィールドが表示される)前に入力を開始してしまうのです。そこで、IEの表示待ちの機能が必要になります。
表示が完了したかどうかの判定には以下の項目を使用します。
objIE.ReadyState:ココが4(数値型)が表示完了
objIE.Busy :IEが処理中かどうかをTRUE/FALSEで表示
objIE.StatusText:IE最下のステータス表示欄の文字列
※どこのサイトでも上2項目しかチェックしてないのですが、不完全であるため私はStatusTextもチェック項目に追加しています。
■例2■
Function WaitIE(objIE As Object)
Dim ReadyStateNum As Integer
Dim ReadyStateText As String
ReadyStateNum = 4
ReadyStateText = "Done"
While objIE.ReadyState <> ReadyStateNum
Wend
While objIE.statustext <> ReadyStateText
Wend
While objIE.busy <> False
Wend
End Function
この機能はページを移動する度に使用される機能なのでFunctionとして定義しています。呼び側からObject形式のobjIE(AxtiveX参照)を引数として受け取り、そのIEのステータスが全て表示完了を示すまで何もせずに待つ機能になります。
ReadyStateTextが"Done"になっているのは、私の環境が英語版のIEを使っているため。日本語IEだと"表示完了"とかになってるのかな?!
ココでの注意点。マウスカーソルがIEのリンク上にある時、ReadyStateTextにはそのリンク先のURLが表示され"Done"がいつまで経っても表示されなくなってしまいます。
~次回に続く~
Blogのログインページを開くにはNavigate2コマンドを使います。
■構文■Navigate2 url
url :表示したいアドレス(URL)を文字列型で指定
Return :戻り値なし
■例1■
Sub Sample1()
Dim objIE as Variant ’オブジェクト参照保存用
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate2 "http://www.google.com" ※1
End Sub
ココでの注意点は※1部分。
単にURLを開くだけであればコレで問題はありませんが、この処理自体は表示コマンドを発行した後、すぐに完了してしまうという事です。言い換えると、ページの表示が完了する前に次の処理に進んでしまうのです。
問題となる例としては、何か入力画面を表示して入力も自動化している場合。
ページが表示される(入力フィールドが表示される)前に入力を開始してしまうのです。そこで、IEの表示待ちの機能が必要になります。
表示が完了したかどうかの判定には以下の項目を使用します。
objIE.ReadyState:ココが4(数値型)が表示完了
objIE.Busy :IEが処理中かどうかをTRUE/FALSEで表示
objIE.StatusText:IE最下のステータス表示欄の文字列
※どこのサイトでも上2項目しかチェックしてないのですが、不完全であるため私はStatusTextもチェック項目に追加しています。
■例2■
Function WaitIE(objIE As Object)
Dim ReadyStateNum As Integer
Dim ReadyStateText As String
ReadyStateNum = 4
ReadyStateText = "Done"
While objIE.ReadyState <> ReadyStateNum
Wend
While objIE.statustext <> ReadyStateText
Wend
While objIE.busy <> False
Wend
End Function
この機能はページを移動する度に使用される機能なのでFunctionとして定義しています。呼び側からObject形式のobjIE(AxtiveX参照)を引数として受け取り、そのIEのステータスが全て表示完了を示すまで何もせずに待つ機能になります。
ReadyStateTextが"Done"になっているのは、私の環境が英語版のIEを使っているため。日本語IEだと"表示完了"とかになってるのかな?!
ココでの注意点。マウスカーソルがIEのリンク上にある時、ReadyStateTextにはそのリンク先のURLが表示され"Done"がいつまで経っても表示されなくなってしまいます。
~次回に続く~