リンクをクリック - VBA、IE制御
リンクをクリックする関数です。
リンク先のURLに◯◯という文字列が含まれてたらとか色々やりようはありますが、今回のはアンカーテキストを指定してクリックします。直感的です。
'--------------------------------------------------------------- '関数名:linkClickByAnchorText '内容:指定文字列のリンクをクリック '引数1:IEオブジェクト '引数2:リンクのアンカーテキスト '引数3:同じアンカーテキストが複数ある場合、何番目のリンクか '戻り値:無し '--------------------------------------------------------------- Sub linkClickByAnchorText(ByVal objIE As Object, ByVal innerText As String, Optional ByVal num As Long = 1) Dim i As Long, Cnt As Long Cnt = 1 With objIE.document.Links For i = 0 To .Length - 1 If .item(i).innerText = innerText Then If Cnt = num Then .item(i).Click Exit Sub Else Cnt = Cnt + 1 End If End If Next i End With End Sub
昔作った関数ということもあって、普通のFor文でループしてますね。
最近はFor Eachの方が好きでそっちばかり使ってます。
使い方は、第一引数にはIEオブジェクト、第二引数にはアンカーテキスト、第三引数はオプションですが、同じアンカーテキストがある場合、何番目のリンクをクリックするか指定します。
例えば当ブログの場合、「<前の3日分」というアンカーテキストが二つありますが、下の方をクリックしたかったら2を引数に指定します。
この例の場合はリンク先が同じなのであまり意味ないかもしれませんが、飛び先が違う場合は指定が必須になりますね。
省略した場合は1番目のリンクをクリックします。

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応
- 作者: 近田伸矢,植木悠二,上田寛
- 出版社/メーカー: インプレス
- 発売日: 2013/04/19
- メディア: Kindle版
- この商品を含むブログ (8件) を見る