• ベストアンサー

Webブラウザの操作

VBA初心者なのですが、ExcelのVBAで、イントラネットにログインして 必要な情報を検索してデータをExcelに読み込むマクロをくもうと思っています。 それでブラウザ上に表示された画面の特定のリンク先に移動するにはどうしたらいいのでしょうか? 今はShell関数でNetscapeを起動させて、SendKeysでTabやEnterを押しているのですが、 過去ログを見るとあまり良くないみたいですし、実際、関係ないリンクを押すことがあります。 他のアプリケーションのコマンドボタンを押す、というのはログにあったのですが、 表示されてる画面のリンクに移動、というのが見つかりませんでした。 表示されている文字は同じですが、ログインするたびにJavaScriptでURLも変わるので 直接URLをいれることもできず、困っています。 すごく初歩的なことなのかもしれませんがお願いします。 それと、Netscapeより、Excel内のWebBrowserを使った方がいいのでしょうか?

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

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

IEをコントロールするという手もあります。 Private Sub Command1_Click() Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") IE.Navigate2 "http://login.mail.goo.ne.jp/certify-cgi/oshiete/ask_login.cgi" IE.Visible = True Do While IE.busy DoEvents Loop With IE.Document.f1 .uname.Value = text1.Text .pass.Value = text2.Text .submit End With Set IE = Nothing End Sub

RDG
質問者

補足

すぐに対応していただきありがとうございます。 こちらが遅くなってしまいすみません。 すみません、質問がまぎらわしかったですね。 ログインはすでにできているのですが、ログインした後 リンクの一つを自動でクリックして移動したかったんです。 あるいは、クリック(もしくはForcusをあててEnter)しなくても ログインするときのように引数みたいなのをJavaScriptに送って 対応するページに移動できるのでしょうか?

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

>それでブラウザ上に表示された画面の特定のリンク先に移動するにはどうしたらいいのでしょうか? >表示されている文字は同じですが、ログインするたびにJavaScriptでURLも変わるので 直接URLをいれることもできず 意味がよくわかりません。 ※まずはログイン ※画面上 「次へ」 と表示されている ※タグは <a href="http://www.goo.ne.jp">次へ</a> となっている しかしいつも《http://www.goo.ne.jp》となっているわけではなく、Javaで切り替わるということですか? なんか矛盾しているような気がします。 ログイン認証の成否を判定するのは、ブラウザ(サーバ)側で、そこから出されたURLへは、ユーザ側でなくサーバ側で飛ばすべきでは? ユーザがURLを指定できるなら、認証の意味があまり感じられないのは私だけ? まーそれはそれとして、Java部分のソースを公開するのが解決の早道のような気がします。 何にせよ、解決策はスクリプト的になりそうですが、、、 もしかして、Web系の掲示板に書いたほうが、解決早いかも? 意味もわからず発言しておりますので、はずしているとは思いますが、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=295676 http://oshiete1.goo.ne.jp/kotaeru.php3?q=267951 でHTMLを読み込むことは可能です。 種類:推測 どんな人:ド素人 自身:聞くだけ無駄 と言うカテゴリがあったらよいと思う今日この頃。。。

RDG
質問者

お礼

お答えいただきありがとうございます。 JavaScriptをほとんど理解していないため わかりにくい質問になってしまいすみませんでした。 >解決策はスクリプト的になりそうですが、、、 そうみたいですね。教えていただいたところのHTML読み込みを使ってみようと思いますが, まずはJavaScriptの勉強もしてみようと思います。 理解してなくてもできる手っ取り早い方法なんてないですね。

すると、全ての回答が全文表示されます。
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

WebBrowserコントロールを使う方法 http://oshiete1.goo.ne.jp/kotaeru.php3?q=382736 INetコントロールまたはwininet系API関数でも出来ます。

すると、全ての回答が全文表示されます。

関連するQ&A