重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VBAでHTMLファイルを扱うのにはどうしたらいいのですか?

open では、うまくいかないようで、どうしたらいいか困っています。

HTMLファイル内の文字列を検索し、見つかった文字列の後ろの何文字かを検出したいのですが、よい方法がありましたら教えてください。

A 回答 (4件)

#3補>うまくいきません。


うまくいかないのがどううまくいかないのか書いてないので不明だけど、多分、文字コードが違うためにVBA からうまく読み込めないんじゃないかと思います。

例えば、この質問のページで回答欄の数字を取り出すVBA としては、こんな感じ
----------------------------------------------------------------
Public Sub getANo()
Dim IE As Object
Dim HTML As String
Dim pos

Set IE = CreateObject("InternetExplorer.Application") 'IEを使う

IE.Navigate ("http://okwave.jp/kotaeru.php3?qid=1934551") '指定したページの読み込み
While IE.busy: Wend
While IE.Document.readyState <> "complete": Wend '読込完了

HTML = IE.Document.body.innerText '内容を文字列で取り出す
IE.Quit
pos = InStr(HTML, "ANo.") '"ANo."を検索する
Range("A1").Value = Val(Mid(HTML, pos + Len("ANo."), 3))'ANo. の後の数字を取り出す'3'は、適当なサイズ
End Sub
    • good
    • 0

#1補>


ごめんなさい、
もう少し詳しくあなたのやりたいことを教えていただけませんか?
そのHTMLファイルは、自分のPCにあるのか、WEB上のモノなのか?
ファイル内の文字列は、どんなモノを想定しているのか?
例えば、<b>ここ</b>その後の文字
のようにタグを含めて検索する必要があるのか?
あるいは、タグを含めないで、ブラウザ上に表示される「ここ」を検索(必要なのはその後の文字)するのか?
IEは、使える環境にありますか?
open でうまくいかなかったのはどのようにやってみたのか?

この回答への補足

早速ありがとうございます。
HTMLファイルはWEB上です。
文字列ですが、探したいものは日本語と数字です。
ただ、検索条件はタグを指定する必要があるかもしれません。
たとえば、自分でオークションに出した品物の値段を監視し、LOGを取っていくようなものを作りたい。
>あるいは、タグを含めないで、ブラウザ上に表示される「ここ」を検索(必要なのはその後の文字)するのか?
ごめんなさい。よくわかりません。

IE、MS-ACCESSがインストールされています。

回答いただいたので、例とうりにやったつもりなんですが。うまくいきません。
よろしくお願いします。

Sub test03()
Open "C:\Documents and Settings\xxxx\My Documents\test7.html" For Input As #1
While Not EOF(1)
Line Input #1, a
MsgBox a
Wend
Close #1
End Sub

補足日時:2006/02/07 12:03
    • good
    • 0

>扱うのにはどうしたらいいのですか


「扱う」といっているのは
(1)IEで開くようなこと
(2)テキストとしてテキストの中煮を何かしたい
メモ帳で開いて見ている状態に対し何かしたい。
どうも(2)らしい。
VBで
Sub test03()
Open "C:\Documents and Settings\xxxx\My Documents\test7.html" For Input As #1
While Not EOF(1)
Line Input #1, a
MsgBox a
Wend
Close #1
End Sub
上記のMsgboxのところで、Instr関数を使って、検索し、MID関数で抜き出しすればよいのでは。
    • good
    • 0

>open では、うまくいかない


多分文字コードが違うとか、ネットワーク上にあるとかですかね。

参考URLのようにしたら、IEを使ってHTMLファイルを取り込むことができます
IE.Document.documentElement.outerHTML
が、取り込んだHTMLファイルの文字列になります。
参考URLのプログラムは、VBScriptなので
WScript.CreateObject("InternetExplorer.Application")
になっていますが、
VBAの場合、
CreateObject("InternetExplorer.Application")
でよいです。

参考URL:http://okwave.jp/kotaeru.php3?qid=1880296

この回答への補足

ごめんなさい。
もう少し詳しく教えてくださいませんか?

使えるのは
EXCEL,WORD,ACCESS VBA

補足日時:2006/02/06 11:51
    • good
    • 0

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