エクセルVBAの質問です。

http://www.vector.co.jp/soft/win95/net/se221214.html
EXCEL Web巡回ツール(Windows95/98/Me/インターネット&通信)
にとても感動したのですが、自分でも勉強かたがた書きの2点に絞って、似たようなものを作りたいと思っています。

1、エクセルからWEBにアクセスしてタグをそぎ落とした上で、テキスト表示する

2、1の拡張版として、リンクの階層を指定して(1で指定したURLの何番目まで取り込むか)情報を取れるようにする

上記1、2に絞ったサンプルスクリプトをお示しいただくか、参考サイトを教えてください。
また、例としてあげたEXCEL Web巡回ツール(Windows95/98/Me/インターネット&通信)
の、この部分だよ!というご指摘でもかまいません。

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:ku__ra__ge No.1

回答回数118ベストアンサー獲得回数40

ポイント40pt

「1」に関してのみですが、以下のVBAでWebの文書をエクセルに取得することが出来ます。

キモは、IE.documentの扱い方なので、上記のURLを参照に頑張ってみてください。


Dim IE As Object

Dim RegExp As Object


Sub タグそぎ落とし表示()

Dim sHTML As String

’初期設定

Set IE = CreateObject(”InternetExplorer.Application”)

Set RegExp = CreateObject(”VBScript.RegExp”)

RegExp.IgnoreCase = True

RegExp.Global = True

’HTML取得

Call IE.Navigate(”http://onisci.com/614.html”)

Call WaitIE


sHTML = IE.document.body.innerHtml

’HTML編集

-> 改行

RegExp.Pattern = vbCr: sHTML = RegExp.Replace(sHTML, ””)

RegExp.Pattern = vbLf: sHTML = RegExp.Replace(sHTML, ””)

RegExp.Pattern = ”

”: sHTML = RegExp.Replace(sHTML, vbLf)

’タグを全消し

RegExp.Pattern = ”<[^>]+>”: sHTML = RegExp.Replace(sHTML, ””)

’HTML表示

Range(”A1”).Value = sHTML

End Sub


Sub WaitIE()

’待ち

While (IE.busy): Wend

While (IE.document.readyState <> ”complete”): Wend

End Sub

id:clinejp

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

じっくり解析してみます。

2005/07/19 13:50:18
  • id:ku__ra__ge
    BRタグが自動変換されてしまっていました

    すいません。このソースですが、「<BR>」(←半角)という文字が本当は
    2箇所ほど入っていたのですが、今見ると投稿時に改行に化けてしまっているみたいです。

    ---------------------------

    -> 改行
    ---------------------------
     ↓
    ---------------------------
    ’<br>-> 改行
    ---------------------------


    ---------------------------
    RegExp.Pattern = ”
    ”: sHTML = RegExp.Replace(sHTML, vbLf)
    ---------------------------
     ↓
    ---------------------------
    RegExp.Pattern = ”<br>”: sHTML = RegExp.Replace(sHTML, vbLf)
    ---------------------------

    と変更すると、うまくいくと思います。
    それと「”」は半角でないとうまくいかないかもしれません。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません