こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル VBA で IE操作 

エクセルVBAにて IEを操作し リンクをクリックするには
どのような記述になりますでしょうか?

たとえば
http://okwave.jp/mypage
へアクセスし画面右上 カテゴリ をクリック
次に Excel(エクセル) をクリック という具合に
画面に表示されている文字を順番にクリックしたいです。


マクロを見つけてきましたが クリックというのはどう記述していいやらさっぱりです。
Sub testIE()

Dim objIE As InternetExplorer 'IEオブジェクトを準備
Set objIE = CreateObject("Internetexplorer.Application") '新しいIEオブジェクトを作成してセット

objIE.Visible = True 'IEを表示
objIE.navigate "http://okwave.jp/mypage" 'IEでURLを開く

Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち

DoEvents

Loop

投稿日時 - 2017-01-02 21:29:38

QNo.9276111

困ってます

質問者が選んだベストアンサー

このようなプログラムを組むときは、リンクがどこにあるか調べる必要があります。
調べたらカテゴリは28番目、エクセルは 240番目にありました。
リンクは0から始まるので、下のようなプログラムになります。
'
Option Explicit
'
Sub Macro1()
'
  Dim IE As Object
'
  Set IE = CreateObject("InternetExplorer.Application")
  IE.Visible = True
  IE.Navigate "http://okwave.jp/mypage"
  BusyWait IE
  IE.document.Links(27).Click
  BusyWait IE
  IE.document.Links(239).Click
  Set IE = Nothing
End Sub
'
Sub BusyWait(IE As Object)
'
  While IE.Busy Or IE.readyState < 3
    DoEvents
  Wend
End Sub
'
しかし、調べるのは大変だし、ホームページのデザインが変わったら、プロクラムを直す必要があります。
ボタンを探すサブルーチンを作れば解決しますが、省略します。

http://okwave.jp/c1035.html
を直接指定した方が早いと思います。
これなら、ショートカットを作るだけで済むので、プログラムはいりません。

投稿日時 - 2017-01-03 08:35:21

補足

回答ありがとうございます。 動的に生成されるホームページなので
リンクの位置というか数はいつも一定とはかぎりません。 ただ
リンクする文字は決まってます。 ここでは OKWEBを一例としてとりあげました。 

投稿日時 - 2017-01-03 14:41:45

お礼

ありがとうございました。

投稿日時 - 2017-01-03 14:41:47

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問