インターネットのHP表の各数字を変数に代入するプログラムでエラー:対処方法?

このQ&Aのポイント
  • インターネットのHP表の各数字を変数に代入するプログラムでエラーが発生し、デバッグ方法がわからない状況です。回答者の引用ではVB記述を実行すると実行時エラーが出ます。初心者で停滞しています。どうデバッグすればいいのでしょうか。
  • インターネットのHP表の各数字を変数に代入するプログラムのデバッグ方法がわからない状況です。回答者の引用ではVB記述を実行すると実行時エラーが出ます。初心者で停滞しています。
  • インターネットのHP表の各数字を変数に代入するプログラムでエラーが発生し、デバッグ方法がわからない状況です。初心者で停滞しています。どうデバッグすればいいのでしょうか。
回答を見る
  • ベストアンサー

インターネットのHPの表の各数字を変数に代入するプログラムでエラー:対処方法?

やや回りくどい質問させていただきます。 インターネットのHPの表の各数字を変数に代入するプログラムをいじっております。が、エラーが出て解決できず、デバッグを成功させたい、どう対処したらよいでしょうという質問です。 これは引用になりますが [No.396123 質問:インターネットから ] ”http://quote.yahoo.co.jp/m3?u にある表から各数字を変数に代入する方法は ” の回答で以下のような回答が寄せられておりますが、 この「回答の引用」のVB記述を実行すると、 実行時エラー '424': オブジェクトが必要です。 とエラーが発生します。どのようにデバッグすればよいのでしょうか。 VBド素人です。こんなところで疑問が出て停滞しております。どうぞよろしくお願いします。 「回答の引用」ここから”imogasiのようにEXCELにいれて後はVBAで処理するのでよいのなら、WEBクエリを利用するほうが簡単だと思いますが、そうでない場合を考えてみました。とりあえずVBSCRIPTで記述しています。テーブルを読み込んでCドライブに保存しています。 dim IE set IE = WScript.CreateObject("InternetExplorer.Application") IE.Width = 640 IE.Height = 480 IE.Visible = true IE.Navigate("http://quote.yahoo.co.jp/m3?u") while IE.busy : wend while IE.Document.readyState <> "complete" : wend dim fs Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile("c:\yahoo.txt", True) for each r in IE.Document.all.tags("TABLE")(5).rows for each c in r.Cells a.Write(Replace(c.innerText,vbCrLf,"") & ",") next a.Write(vbCrLf) next a.Close IE.quit ”引用ここまで

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

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

>でエラー(オブジェクトが。。。) >が発生し固まってしまい。 >実際、一歩も進めておりません。 この行でとまっているなら。 そもそもIEが壊れているorWSH自体が壊れているのどちらかでしょう。 IEが壊れているならもっと他に不具合が出てそうですからWSHの方でしょうか? ただこれはデフォで入っているものですし、早々壊れるものでもないのですが・・・・よく分かりません。 ということでやっぱりVBA+Webクエリでやった方がいいかなと。

mirabouman
質問者

お礼

まことにありがとうございます。 解決はしませんでしたが、回答の方参考になりました。 いったん締め切ります。

その他の回答 (1)

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

私の環境では問題なく動作しました。 コード上のミスは無いかと思います。 ・そもそもWSHがインストールされていない、もしくは壊れている。  デフォではインストールされていますがセキュリティ上使わない人はアンインストールをされるケースも多々ありますし。 ・コピペのミス、もしくは先頭か最終行に不必要な記述がされている。 例えば ”引用ここまで とか コメント行は '引用ここまで こうです。 あとテーブル構成が変わったからなのか、5ではなく、4でないと数字データは取れないようです。 for each r in IE.Document.all.tags("TABLE")(5).rows ↓ for each r in IE.Document.all.tags("TABLE")(4).rows さらにアドバイスしておくと デバッグの仕方も分からないVBSよりは、その質問先にあるようにVBAとWebクエリを組み合わせた方がデバックしやすいかと思います。ヘルプも充実しているし。

mirabouman
質問者

お礼

ご回答の方ありがとうございます。 ご回答に従い、問題を解決しようと試みてはいるのですが、 set IE = WScript.CreateObject("InternetExplorer.Application") でエラー(オブジェクトが。。。) が発生し固まってしまい。 実際、一歩も進めておりません。 私のOSはwindowsXPです。

関連するQ&A

  • VBSでMid関数を使ったらエラーが出た(文字列の一部を切り出したい)

    お世話になっております。 VBSでテキスト(文字列)の一部を切り出したいのですが、Visual basicのやり方だとエラーが出てしまいます。 つまり、Mid関数を使ったらエラーが出て、対処がわかりません。 以下に具体的なものを示します。 インターネットホームページの中からテキストを取得して、そのテキストから一部分を切り出したいのです。 例えば切り出したテキストが「赤1、青2、黄3」だとします。色名+数字、色名+数字、色名+数字というテキストです。色名を指定して、その次の数字を切り出したいのです。最終的には切り出した数字をc:\textfile.txtに保存しようとしております。 Dim IE dim price Set IE = WScript.CreateObject("InternetExplorer.Application") IE.Navigate ("http://hoomupeeji") While IE.busy: Wend While IE.Document.readyState <> "complete": Wend Dim fs Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile("C:\textfile.txt", True) For Each r In IE.Document.All.tags("TABLE")(3).rows For Each c In r.Cells a.Write (Replace(c.innerText, vbCrLf, ",")) Next Next price = Mid(a, InStr(price, "赤") , 1) a.Write (price) a.Close IE.quit どうぞよろしくお願いいたします。

  • ExcelのVBAでHTMLのソースのタグの部分を小文字で取得したい

    HTMLのソースコードを取得する下記のVBAを実行すると タグの部分が大文字(<H1>等)になってしまいます。 どうすれば小文字のタグのまま取得することが出来るのでしょうか? 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003 ご存知の方がおられましたらご回答をよろしくお願いします。 Sub sample() Set IE = CreateObject("InternetExplorer.Application") IE.Navigate ("http://www.yahoo.co.jp/") While IE.busy: Wend While IE.Document.readyState <> "complete": Wend HTML = IE.Document.body.innerHTML MsgBox HTML IE.Quit End Sub

  • ExcelのVBAの正規表現で二重引用符を含む文字列を検索できるようにしたい

    二重引用符を含む文字列を検索できるようにするには 下記の記述の re.Pattern = "<hr class=\"separate\">" の部分をどのように直せばよいのでしょうか? Sub tagCount() Dim cnt As Integer Dim IE As Object Dim HTML As String Set IE = CreateObject("InternetExplorer.Application") IE.Navigate ("http://www.yahoo.co.jp/") While IE.busy: Wend While IE.Document.readyState <> "complete": Wend HTML = IE.Document.body.innerHTML IE.Quit Dim re As RegExp Dim mc As MatchCollection Dim m As Match Set re = New RegExp re.Pattern = "<hr class=\"separate\">" re.Global = True re.IgnoreCase = True Set mc = re.Execute(HTML) MsgBox mc.Count End Sub ご存知の方がおられましたらご回答をよろしくお願いします。 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003

  • VBS/ドラッグ&ドロップ/UTF-8

    VBS超初心者です。 VBSにテキストファイルをドラッグ&ドロップして、改行が3回以上連続した箇所を「改行+ダミー文字+改行」に置換するスクリプトを作成してみました。 WEB上のサンプルスクリプトなどを参考にしながら、なんとか動くようにすることはできたのですが、ドイツ語のファイルを処理すると、何故か文字コードがS-JISになって文字化けしてしまいます。 どうしたらUTF-8のまましょりできるのでしょうか。 また、スクリプトの記述もかなり拙いものになっていると思います。 問題点、完全方法などご教授いただけると今後の勉強に役立つと思うので、よろしくお願いします。 Set FS = CreateObject("Scripting.FileSystemObject") For Each strArgument in Wscript.Arguments Set ts=Fs.OpenTextFile(strArgument,1,True,TristateTrue) myStr=ts.ReadAll Set objRE = New RegExp objRE.Pattern = "(" & vbCrLf & "){3,}" repStr = vbCrLf & "[dummy]" & vbCrLf objRE.IgnoreCase = True objRE.Global = True objRE.Multiline = True newStr = objRE.Replace(myStr,repStr) ts.Close Set ts = FS.OpenTextFile(strArgument,2,True,TristateTrue) ts.Write newStr ts.Close

  • ExcelのVBAでHTML内の特定のタグの出現回数を調べたい

    たとえばYahoo!JapanのサイトのHTMLのTDタグの出現回数を調べる場合 下記のVBAに何を付け加えればよいのでしょうか? Sub tagCount() Dim cnt As Integer Dim IE As Object Dim HTML As String Set IE = CreateObject("InternetExplorer.Application") IE.Navigate ("http://www.yahoo.co.jp/") While IE.busy: Wend While IE.Document.readyState <> "complete": Wend HTML = IE.Document.body.innerHTML IE.Quit 'td_count = ここの部分がわかりません。 '文字列の出現回数をカウントする関数はないのでしょうか? MsgBox td_count End Sub ご存知の方がおられましたらご回答をよろしくお願いします。 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003

  • VBAでgetElementByTagName

    VBAでIEを動かそうとしている初心者です。 For Each a In ie.Document.getElementByTagName("A") で実行時エラー'438':オブジェクトは、このプロパティまたはメソッドをサポートしていません となるのですがなぜでしょうか Dim ie As Object Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True '画面へ移動する ie.Navigate "http://www.forest.impress.co.jp/" waitNavigation ie Dim a As Object Dim urls As New Collection For Each a In ie.Document.getElementByTagName("A") urls.Add a.href Next

  • ExcelVBAでIE画面データの取り込みかた

    http://www.geocities.co.jp/SiliconValley-Bay/1992/excel/web.html このページの記述を見てYahoo!のページはとりこめました。 ただ、新たにURLを指定してIEを立ち上げるのではなく、すでに開いているIE画面のデータを取りこむにはどのように直せばよいのでしょうか? ご教授ください。 Option Explicit Sub test()  Dim ie As Object  Dim x As Object  Set ie = CreateObject("internetexplorer.application")  Set ie = GetObject("", "InternetExplorer.application")  ie.Visible = False  ie.navigate ("http://www.yahoo.co.jp/")  While ie.Busy Or ie.ReadyState <> 4: DoEvents: Wend  Set x = New DataObject  x.SetText ie.document.documentElement.innerText  x.PutInClipboard  ActiveSheet.PasteSpecial  Set x = Nothing  Set ie = Nothing End Sub

  • エクセルVBAで、Yahooの路線の片道料金を取得する

    A2に(出発地の)大阪、 B2に(目的地の)名古屋とあったら、 C2に(運賃:片道)6,180円が入るようにしたいのです。 コードを教えて頂きたく御願いします。 (この部分しか書けませんでした。) Sub test() Dim IE Set IE = CreateObject("InternetExplorer.Application") IE.Navigate "http://transit.map.yahoo.co.jp" IE.Visible = True IE.Quit SetIE = Nothing End Sub

  • フォルダ一覧の並べ替え

    フォルダ一覧をするコードです。下記はフォルダ名順に並んで表示されますが、これを逆順に並べ替えする方法についてアドバイスいただけないでしょうか。検索するもなかなか探せず。もしくはフォルダ作成日の新しい順でも可 です。 <% Set fs = CreateObject("Scripting.FileSystemObject") di = fs.GetParentFolderName(Request.ServerVariables("PATH_TRANSLATED")) Set f = fs.GetFolder(di) Set fc = f.SubFolders For Each f1 In fc Response.write f1.Name & "<BR>" Next %>

  • Excel の VBA で、IEのWeb操作

    ExcelのVBAで、A1~A10 のセルに入っている数値を下記 URL の「お問い合せ番号」の入力欄に自動でセットして、「検索」のボタンを押したいのですが、方法が分かりません。 http://www2.fukutsu.co.jp/inq/INQJJ120.html 下記のプログラムで表示までは出来るのですが、それから先の入力とボタンクリックの方法が分かりません。 何かアドバイスを頂けると幸いです。 > Dim oIE As Object > > 'IE起動 > Set oIE = CreateObject("InternetExplorer.Application") > oIE.Visible = True > > '目的のURLへ > oIE.Navigate "http://www2.fukutsu.co.jp/inq/INQJJ120.html" > > '完全表示まで待つ > While oIE.Busy: Wend > While oIE.document.readyState <> "complete": Wend

専門家に質問してみよう