• ベストアンサー

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

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

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.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

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

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

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

hang
質問者

補足

早速ありがとうございます。 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

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>扱うのにはどうしたらいいのですか 「扱う」といっているのは (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関数で抜き出しすればよいのでは。

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>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
hang
質問者

補足

ごめんなさい。 もう少し詳しく教えてくださいませんか? 使えるのは EXCEL,WORD,ACCESS VBA

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

関連するQ&A

  • AccessでVBAを使って

    AccessでVBAを使ってやりたいことがあります。 あらかじめExcelで作成したHTMLファイルを作ります。 ファイルの内容は「Click」という文字列にハイパーリンクが仕掛けてあります。 やりたいことは、自動的にHTMLファイルを開いて、 Clickの文字列を完全一致で探し出して、 そのハイパーリンクをクリックしたいのです。 どなたかご回答をよろしくお願いいたします。

  • 自分の持っている大量のHTMLファイル?を開かずに文字列を検索できる方

    自分の持っている大量のHTMLファイル?を開かずに文字列を検索できる方法ってないですか?

  • DBとHTMLファイルを検索したい

    PHP+MYSQLででDBの検索機能を作成しました。 現在問題なく動くのですが、DBだけでなくHTMLファイルに書かれた文字列の検索も一緒にできるように改造したいのです。 例えば検索条件1が山田、検索条件2が太郎として、 テーブルに[山田]、HTMLファイルに[太郎]があるものを検索結果としてヒットさせたいです。 テーブルのデータとHTMLファイルを結ぶ条件としてテーブルにID項目があり、例えばIDが1234だったら1234.htmlというファイルが必ず1つだけ存在します。 データの数は現在30程度ですが、今後増え続けます。 HTMLファイルは大体20kbほどあります。 ヒットしたデータのIDと同じ名前のHTMLファイルを1つ1つstrrposを使って調べるとなるとやはり処理は重くなりますか? ちょっと説明がわかりにくいかもしれませんが、何か良い方法はないでしょうか。 アドバイスお願いします。

    • 締切済み
    • PHP
  • vbaでHTMLファイルを取得、保存したい

    エクセルvbaを使い、HTMLファイルを保存することはできるものでしょうか。 エクセル書類の中にいくつかのリンクがあり、このリンク先の中味を別のホルダーに保存したいのですがこのようなことをvbaを使い実施することはできるものなのでしょうか。 もしできるとしたらその方法等教えていただければありがたいのですが。 よろしくお願いします。

  • VBAでのIE操作・HTML操作について

    VBAを独学で学んでいる者です。IEを操作させたく、学んでいます。 色々と検索などをしていましたが行き詰ってしまいました。 どうぞご助力願います。 学び始めて1週間程度ですので、うまく説明できないかもしれませんがご容赦ください。 VBAでIEを操作し、特定のURLを表示。←これは大丈夫です 表示されたウェブサイトのHTML内の特定の文字列(リンク)と、 アクティブなセル内のテキストが合致したリンクをクリックする、 ・・・といったマクロは書けるものでしょうか? <INPUT TYPE="submit" NAME="btn01" VALUE="ログイン"> 上記のようなHTMLソースですと「NAME="btn01"」を探せば、「objIE.document.all.btn01.Click」というものでできるかと思いますが、 動的に変化するウェブサイトの文字列と、あらかじめ用意していたセル内の文字列が合致した時にだけクリックするような方法を求めています。 例えば ・夏にしか出現しないウェブサイトコンテンツ「水着」。 ・エクセルのシートC2に「水着」。 ・IE起動。サイト内に「水着」という文字列があり、セルと合致するので「水着(リンク)」の箇所をクリック。 ・・・といった感じなのですが・・・。やはり難しいでしょうか・・・。 「水着」といった単語ではなく、もっと複雑な文字列を扱う予定です。 稚拙な表現ですみません。 皆様、どうぞ宜しくお願いいたします。

  • HTMLソースからURLだけを抜き出す方法を教えてください!

    どなたかお知恵をお貸しください。 HTMLのソースファイルからURLを取得するツールを 作ろうと思うのですが、そのURLだけを抜き出すと いうところがよく分かりません。 ソーステキストを open "source.txt" for input as #1 do until eof(1) line input #1,aa で一行ずつ読み込んでいき、 その中から InStr関数で「http://」の文字列を検索すると いうことぐらいは想像がつくのですが、URLは 文字数も決められているわけではないので、検索で 見つかった位置から最後までを抜き出すという方法が どうしても分かりません。 あるいは、タグの <A href= という文字列を検索して 見つかった位置から次に > という文字列が見つかった 場所までの間を抜き出すという方法になるかと思いますが、 最初に検索で見つかった位置から次に見つかった位置まで をどのように検索すればいいのかが分かりません。 何かいい手がございましたら、ぜひ教えてください。 よろしくお願いします!

  • HTMLファイルに変な文字が勝手に入っています。。

    まだUPしていないHTMLファイルに変な文字が勝手に入ります。 </html>で終わった後に、また後ろから<HTML>と書いてあって、 その後ろに長い文字が勝手に入ります。 ついこの前からこんな感じになりました。 この文字は何なんですか? この文字を入らなくする方法はありますか? 教えて下さい。

    • ベストアンサー
    • HTML
  • エクセルファイルをHTML化した後の特定領域の文字列抽出

    エクセルファイルをHTML化した後の特定領域の文字列抽出 1.したい事  HTMLで作った表の中から特定の場所の文字列を抽出し,クリックでその画像が出てくるようにしたい.  OSはWinXP(pro)エクセルは2003です. 2.説明  4000程のjpeg画像ファイルがあるフォルダから,ネット上で配布されていましたエクセルマクロで  ファイル名を抽出しリストを作り,それをHTML化しました.エクセル上のB列に画像ファイル名が  抽出されているわけですが,当然のことながらHTML化した時点でセルの情報は失われています.  ファイル名は変えずに(拡張子はすべてjpg),HTML構文中でその文字列をクリックするとその画像  が出てくるようにしたいと考えています(ファイル名以外の列が出来ても構いません). 3.教えていただきたい事  1)HTMLの表の書式から特定の場所(エクセルでいうセルにあたる)の文字列を抽出できる方法が    あるかどうかご教示ください.  2)私が考えている方法以外にあるフォルダから千を上まわるファイル名を抽出,リスト化し    目的を達成出来る方法があるかどうかご教示ください.   

  • VBA HTML要素または文字の座標を取りたい

    VBAなんですが、 HTML要素または指定文字したの画面の座標を取得したいです。 ですが、全然みつけられずにいます!! IEやらDocumentやら検索してますが出てきません。 どなたかご存知の方、おしえてください。

  • VBAでUTF-8テキストファイル作成したい

    VBA,文字コードなどにあかるくない初心者です。 VBAを利用して、エクセルのとあるセルに記載されている文字を UTF-8形式でテキストファイルに出力させたいと考えています。 (多言語対応のため・・・、韓国語や中国語でセルに記載された文字を  UTF-8形式でテキストファイルに文字化けしないよう出力させたいためです。) どのように実現が可能か、いくつか検索をしてみましたが 難しくてわかりませんでした。 VBAのサンプルコードを教えていただけないでしょうか。 もしくは、初心者でもわかりやすい実現方法が記載されたサイトを教えていただけないでしょうか。 よろしくお願い致します。 ※今文字コードを意識せずに下記のようなVBAを書いています。(簡略化して記載しています。) Sub test() Open "C:\Sample\Data.txt" For Output As #1 'ファイルを新規作成 'データ書き込み Print #1, Cells(1, 1) Close #1 End Sub