新しく質問する

VBAからhttpを呼びソースを取得

役に立った:8件
  • 質問者:rally
  • 投稿日時:2004/10/16 21:33
  • 困り度:すぐに回答が欲しいです

ブラウザでURLを指定すると、htmlがサーバーから返され表示されます。
それをVBAからURLを指定し、htmlのソースを文字列で受け取りたいと思います。

普通にshellで渡すとブラウザが起動されてしまうし・・・。

方法があれば教えてください。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:8件)
  • 参考になった:0件

No.2ベストアンサー20pt

  • 回答者:imogasi
  • 回答日時:2004/10/17 10:07

HTMLテキストを取るには
Sub test01()
Set obj = CreateObject("InternetExplorer.Application.1") 'IEを新規オブジェクトとして宣言
obj.Visible = True
targetURL = "http://okweb.jp/kotaeru.php3?qid=1044759"

obj.Navigate (targetURL) '指定アドレスに飛ばす
'時間待ち(objが動作中であれば)
Do While obj.busy
Loop

'表示
obj.Visible = True
For n = 0 To obj.Document.All.Length - 1
If UCase(Trim(obj.Document.All(n).tagname)) = "HTML" Then
s = obj.Document.All(n).outerhtml 'HTMLのテキスト
Cells(n + 1, 1) = s 'エクセルONLY用
End If
Next
End Sub
2,3のWEBに載ってたものの寄せ集めですが。
なかなか載って無いものですね。
sが文字列です。エクセルなどでは、長さ制約あり。
WSHやBASP21やWEBBROWSERなど使う方法があるようですが、不勉強で全体を見渡せていないので取りあえず。

通報する

この回答へのお礼

IE自体をオブジェクトで持っていれば、ログインから実行していけるので画面遷移の問題もクリアですね。
かなり参考になりました。

Webアプリケーションの自動テストツールの作成にも使えそうですね。

  • 参考になった:0件

No.1ベストアンサー10pt

  • 回答者:incho0922
  • 回答日時:2004/10/16 22:55

同様の質問をしたことがあるので・・・^_^;

BASP21コンポーネントのW3get関数を利用する方法があります。文字列で「受け取る」ことはできませんが。

通報する

この回答への補足

BASP21、いいですね。
文字列で受け取らなくても、ソースを取得してファイルオープンすればいいですからね。
サイトを参考に取得することができました。

もう少し教えてください。

あるページで試してみると「ちゃんとしたルートから遷移してください」のエラーとなりました。
クッキーの指定でどうにかなりそうなのですが、どんな値を渡せばいいのかわかりません。

どこかを見ればわかるものでしょうか?
(例えば、Temporary Internet Fileとか)

  
このQ&Aは役に立ちましたか?(役に立った:8件)

このページのトップへ