リンクへ飛ぶ2 | カメレオンのVBA

カメレオンのVBA

VBAの私的メモ書き

HPからリンク先を取得し移動する。
対象のHPの構造上でリンク先を取得して常に8個目に、
表示させたいURLがあるとした場合の処理方法。
なお、リンク先の取得に ~.Links.Length を用いている。

<サンプル>
'↓↓↓↓↓ここから↓↓↓↓↓
Dim objIE As InternetExplorer
    Dim HTMLDoc As HTMLDocument
    Set HTMLDoc = objIE.document
    Dim a As HTMLAnchorElement 'リンク先(a herf)に対応する

Sub リンクへ飛ぶ()
  'あらかじめIEでホームページを開いておく

  '1:IEを起動する
    Set objIE = IE取得開始("+Lhaca - 窓の杜ライブラリ")  '開いているHPのタイトルを指定
    objIE.Visible = True '見えるないようにする→バックグラウンドで実行する
  
    Call 画面移動が完了するのを待つ

   
    '2:リンクを取得する
    On Error Resume Next
  
    For i = 1 To HTMLDoc.Links.Length '~.Links.Lengthはリンク先(a herf)の数を取得している
        If i = 8 Then '8個目のリンク先を取得する
            Set a = HTMLDoc.Links(i - 1) 'リンク先のURLを取得
            objIE.navigate a
            objIE.Visible = True
            exit for
        End If
    Next
   
    On Error GoTo 0
  
    Call 画面移動が完了するのを待つ
End Sub


Private Sub 画面移動が完了するのを待つ()
  'EADYSTATEがCOMPLETEになるまで待つ
    Do While objIE.Busy Or objIE.readyState < READYSTATE_COMPLETE
        DoEvents
    Loop
End Sub

'↑↑↑↑↑↑ここまで↑↑↑↑↑↑