• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ウェブクエリのマクロが不正な時がある)

ウェブクエリのマクロ不正時の対応方法とは?

このQ&Aのポイント
  • エクセルにウェブクエリのマクロを組み込んで動かす際に、実行結果が正常と異常の2パターン存在することがあります。
  • 問題が発生する原因として、ヤフーの株価ランキングから取得した株価が一部ページで表示されない場合があります。
  • 詳細な処理内容やソースコードも共有されています。IE6で実行していることが明記されています。

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

[回答番号:No.1] の DOUGLAS_ です。  そもそも、 >株価表示がないような落ち方をします。 とお書きなのは、マクロ実行後に、いくつかのシートが1行目に 1 / 36 ページを表示(合計:1767件)[ 前の50件 | 次の50件 ] のような文字列だけが表示される、ということかなと存じまして、前回答を書きました。  この場合、[ツール バー] - [外部データ] の [データの更新] をクリックすると他のワークシートと同様の内容を読み込むようですので、 >毎回、取得するしかない ということでしたら、 Next の前に If Range("A1") <> "順位" And Range("A1") <> "コード" Then  ws.QueryTables(1).Refresh BackgroundQuery:=False End If とでもおまじないを書いておくといかがでしょうか?

noname#127172
質問者

お礼

アドバイス有難うございました、 If Range("A1") <> "順位" And Range("A1") <> "コード" Then  ws.QueryTables(1).Refresh BackgroundQuery:=False End If 教えて頂いた方法を参考に解決しました。 お世話様でした。

その他の回答 (1)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 お示しのコードは、 >ヤフーの株価ランキングから4ページ分をシートに落とす処理 ですよね。  毎度毎度、新たなシートを作成して、その処理をしていらっしゃるのでしょうか? >7~8回に一度くらいページがあるのに株価表示がないような落ち方をします。  この際、マクロで毎度の更新処理をするのではなくて、上記マクロは1回だけ実行しておいて、そのブックを保存し、開いた時に、[外部データ] の [すべて更新] が行なわれるように、ブックモジュール に Private Sub Workbook_Open()  ActiveWorkbook.RefreshAll End Sub と書いておくか、それでもダメなら、[ツール バー] - [外部データ] の [すべて更新] をクリックしてみられたらいかがでしょうか?

noname#127172
質問者

補足

説明不足で申し訳ありません、 処理に当たって取得するランキング形式 (値上がり率、値下がり率・・・)を 選択できる形式にしているので念の為 毎回削除する仕様にしています。 毎回、取得するしかないと思うのですが、 何か良いお考えがあれば宜しくお願いいたします。

関連するQ&A