プロが教える店舗&オフィスのセキュリティ対策術

VBA初心者なのですが、ExcelのVBAで、イントラネットにログインして
必要な情報を検索してデータをExcelに読み込むマクロをくもうと思っています。
それでブラウザ上に表示された画面の特定のリンク先に移動するにはどうしたらいいのでしょうか?

今はShell関数でNetscapeを起動させて、SendKeysでTabやEnterを押しているのですが、
過去ログを見るとあまり良くないみたいですし、実際、関係ないリンクを押すことがあります。

他のアプリケーションのコマンドボタンを押す、というのはログにあったのですが、
表示されてる画面のリンクに移動、というのが見つかりませんでした。
表示されている文字は同じですが、ログインするたびにJavaScriptでURLも変わるので
直接URLをいれることもできず、困っています。
すごく初歩的なことなのかもしれませんがお願いします。

それと、Netscapeより、Excel内のWebBrowserを使った方がいいのでしょうか?

A 回答 (3件)

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/ …
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

この回答への補足

すぐに対応していただきありがとうございます。
こちらが遅くなってしまいすみません。
すみません、質問がまぎらわしかったですね。
ログインはすでにできているのですが、ログインした後
リンクの一つを自動でクリックして移動したかったんです。

あるいは、クリック(もしくはForcusをあててEnter)しなくても
ログインするときのように引数みたいなのをJavaScriptに送って
対応するページに移動できるのでしょうか?

補足日時:2003/03/25 21:04
    • good
    • 0

>それでブラウザ上に表示された画面の特定のリンク先に移動するにはどうしたらいいのでしょうか?


>表示されている文字は同じですが、ログインするたびに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を読み込むことは可能です。


種類:推測
どんな人:ド素人
自身:聞くだけ無駄

と言うカテゴリがあったらよいと思う今日この頃。。。
    • good
    • 1
この回答へのお礼

お答えいただきありがとうございます。
JavaScriptをほとんど理解していないため
わかりにくい質問になってしまいすみませんでした。

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

お礼日時:2003/03/26 16:26

WebBrowserコントロールを使う方法


http://oshiete1.goo.ne.jp/kotaeru.php3?q=382736

INetコントロールまたはwininet系API関数でも出来ます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!