• 締切済み

エクセルVBAでWEB上のリンクをクリック

エクセルVBAで、IEを開いて指定したURLをNavigateするところまではなんとかできたのですが、Navigateしたページ上の特定のリンクをクリックするにはどうしたらいいかがわかりません。 どなたか教えて頂けないでしょうか? よろしくお願いします。

noname#251036
noname#251036

みんなの回答

  • luka3
  • ベストアンサー率74% (292/393)
回答No.1

For Each linkitem In IE.Document.all.tags("A") 'すべてのAタグ If linkitem.href = "???" Then linkitem.click() End If Next 動作確認していませんがこんな感じだと思います。 linkitemはhrefやouterHTML、innerTextのプロパティからクリックしたいリンクを特定してください。 clickの後はNavigateと同様の処理をしてください。

関連するQ&A

  • VBAでWEBのリンクをクリックしたい

    取引先のWebサイトから請求書のデータを取得しようと思い、該当ページに到達すべくコードを書いてみました。 以下のコードを F8 キーでステップ実行を続けると目的を達するのですが、ボタンに割付て実行するとログイン後のページを表示した後目的のリンクをクリックできません。 状態待ちかと思い待機コードをビシバシ突っ込みましたが通常実行では目的のリンクをクリックしてくれません。 どうしたらよいでしょうか? Sub サイトオープン() Set objIE = CreateObject("InternetExplorer.Application") With objIE .Navigate "https://www2.hogehoge/Login.jsp" .Visible = True 'IE待機 Do While .Busy = True DoEvents Loop 'テストボックスへ入力 .Document.all.Item("userId").Value = Range("b1").Value .Document.all.Item("password").Value = Range("b2").Value '送信ボタンクリック .Document.forms(0).submit     '←ここまではOK    'IE待機 Application.Wait 3000 '1000分の1秒 Do While .Busy = True DoEvents Loop     ’フレーム内のリンク確認 For Each objLink In objIE.Document.frames("right").Document.Links If objLink.Href = "https://www2.hogehoge/BillList.jsp?init=false&search=???&page=Top" Then '←F8ステップ実行ではOKだが、通常処理では判定されない?      'IE待機 Do While .Busy = True DoEvents Loop  ’リンクをクリック          objLink.Click  ’←要はこれをしたい!        'IE待機      Application.Wait 3000 '1000分の1秒 Do While .Busy = True DoEvents Loop Exit For End If Next End With Set objIE = Nothing End Sub

  • エクセルのハイパーリンクをクリックするとエクセルが勝手に最小化されてしまう

    仕事先でエクセル2000を使っています。 セルにURLを書きこんでハイパーリンクを設定していますが、URLをクリックするとIEが立ち上がって指定したページが開きます。これについては良いのですが、クリックする都度、エクセルが最小化されてしまいます。 同じことを自宅のエクセル2002でやってみると上記のようなことにはなりません。どこかに設定するところがあるのでしょうか

  • エクセル 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

  • Excel VBAでブラウザのリンクをクリックするには

    Excelのバージョンは2003です。 VBAで出発地から到着地からNavitimeのサイトに接続して距離を取得するようなプログラムを作成していますが… 下記のように記述しています。 Private Sub Workbook_Open() Dim ie As InternetExplorer Dim addr0 As String Dim addr1 As String Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True addr0 = "住所1" addr1 = "住所2" ie.navigate "http://www.navitime.co.jp/?keyword0=" & urlEncode(addr0) & _ "&keyword1=" & urlEncode(addr1) & _ "&ctl=0604" Do While ie.Busy = True Do While ie.readyState <> 4 DoEvents Loop Loop End Sub Public Function urlEncode(str As String) As String Set sc = CreateObject("ScriptControl") sc.Language = "Jscript" Set js = sc.CodeObject urlEncode = js.encodeURIComponent(str) End Function リンクをクリックするにはどのようにすればいいのでしょうか。 アドバイス宜しくお願いします。

  • クリックでリンクの色が変わる

    皆様のおかげで下手ながら何とかHPができました。 IE8の上でリンクをしたある特定の文字列だけクリックをすると 色が変わります。ページ上の色はやや濃い青ですが、特定の文字列は クリックで緑に変色します。 履歴の削除で元に戻りますが、いちいち面倒くさいので困ります。 どうすればこのような現象がなくせるのか、どなたかぜひ教えて ください。 よろしくお願いします。

  • Excelのリンクに関して

    Excel2013を使っています。 Excelのセルに貼り付けたリンク(URL)を開くために、それをクリックすると、 Excelの画面が一番後ろにいって、開きたいページがPC画面の一番前にきます。 こうではなく、Excelのリンクをクリックしても、画面は開くけれど、Excelが常に、 PC画面の一番前にある状態にするにはどのようにすればいいでしょうか? なぜ、こうしたいかというと、Excelに貼った複数のURLを 連続してクリックしたいためです。

  • エクセル上のリンクをワンクリックで開くには?

    エクセル2003を使っているんですが、セル上にURLをのリンクを数十個貼ってあり、 それを以前はワンクリックだけで次々とブラウザのタブで開くことができたんですが、 ある時をきっかけに、ワンクリックではリンクを開くことができなくなり URLが貼ってあるセルをダブルクリック→空白のセルをワンクリックで選択→URLが貼ってあるセルをワンクリックしてURLを開く という手順を踏まないといけなくなりました。 以前は、 URLが書いてあるセルをワンクリックするとすぐにリンクを開くことが出来ました。 ワンクリックだけでURLを開くようにするにはどうすればよいでしょうか? エクセル2003 Windows8

  • ページのどこかクリックするとリンク

    ページのどこかクリックするとリンク先に飛んでいくようにできますか。 #そのページの中の画像でも文字でもそれ以外の任意のどこだろうがクリックすると指定したURLに飛ぶように。

  • webデザイン リンクについて

    初歩的な質問失礼します。 リンクに関する質問をいくつかさせてください。 1. ページのフッター部分によくある「ページトップへ戻る」リンクボタンですが、   一般的なurlの指定の方法はあるのでしょうか?   href="#" では間違いでしょうか? 2. 同じページ?へのリンクのurl指定方法   (例えば、ある会社のサイトの「home」というページにおける、グローバルナビの「home」ボタンや、ページトップにある、クリックすれば「home」にいくロゴ画像へのurlの指定方法。 ) 2つ目はちょっと説明が下手ですが..... どなたか教えていただけないでしょうか?よろしくお願いいたします!

    • ベストアンサー
    • HTML
  • VBAでWebページにセルの値を入力

    エクセルVBAを用いて指定したセルの値を 表示中のWebページにあるテキストエリア等(よくある入力フォーム)に入力する というものを作りたいのですが、 IEとの連携がよくわかりません。 似たようなもので、googleページを自動で開き、 テキストエリアに検索語句を入力し、ボタンを押す というもののソースがありました。 下記のページの3番です。 http://www.hatena.ne.jp/1137216805 これを応用できるかなと思ったのですが、 うまくいきません。 ・表示中のページに入力したいので ie.Navigate ("http://www.google.co.jp/") この部分が必要ありません。 呼び出したページではなく、表示中のページを ie.document.allの対象にするにはどうすればよいのでしょうか? また、他にも良いやり方がありましたら、教えてください。 よろしくお願いします。

専門家に質問してみよう