見学に行くとしたら【天国】と【地獄】どっち?

訳在ってコード全体は表示できませんが、
毎日、webからデータを取得するexcelを使ってきました。
コレまで20年以上、問題なく使えてきていましたが、
昨日、一時ファイルだか、、キャッシュだか分かりませんが、
前日分を取り込んでしまうような現象が出ました。

コレまでにも、たまにですが、同じ現象が出た事が在り、
その時のために、キャッシュをクリアするexcelも在りました。
昨日は、それをやってもどうしても前日分しか取れませんでした。

とりあえずがexcelは辞めて、手で一時ファイルを削除し、
再作業をしたら、コレまで通り、ノーマル終了しました。
毎回手でやれば済むかもしれませんが、コレまで通りやりたいなと。

ということで、教えて欲しく質問しています。
私の分からないなりの考えですが、
コレまで使っていたexcelでは、最新版に対応出来ていないのでは、です。
宜しくお願いします。

追加;
私は普通のexcelであればなんとか分かるレベルです。
web関係については全く分かっていません。
なので、ずばり、コードまで教えていただけますよう、
併せてお願いいたします。

キャッシュクリアexcelの内容です。
Private Sub Workbook_Open()'Public Function Call_sample_Delete_Cookie()
Dim objIE As Object

'■IEを起動→表示
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True

'■インターネット一時ファイルおよびWebサイトのファイルを削除
Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8"
MsgBox "done"
objIE.Quit
Set objIE = Nothing
ThisWorkbook.Saved = True
If Workbooks.Count <= 1 Then Application.Quit
ThisWorkbook.Close
End Sub

質問者からの補足コメント

  • 「都度一時ファイルをクリアする」を設定しました。
    コレで、削除excelは使わずに済みそうです。
    なお、IEモードは29年までは存続するとなっているみたいです。
    ありがとうございました。

    No.1の回答に寄せられた補足コメントです。 補足日時:2024/10/31 19:16

A 回答 (2件)

こんにちは



IEはすでにサポートも完全に停止されて、もはや過去の遺物になろうとしています。
ですので、IEの最新版とかはありません。

ご提示のコードも(過去においては)通常の内容です。
(今まで動作していたのですから、当然ですね)
ありそうなのは、質問者様のPC環境が変わって動作しなくなったとか・・
何が変わったのかわかっていれば原因もわかるでしょうけれど、ご様子からするとわからないであろうと推測します。

怪しいのは、OSのバージョンアップ等で環境が変わったとかでしょうか。
(確実ではありませんけれど・・)
ですので、最近のバージョンアップをキャンセルして元に戻せばこれまで通り動くようになる可能性はあります。
もしもそのまま使い続けたければ、バージョンアップ等を全て停止して、ガラパゴス状態を保てば良いという事になりますけれど・・
(脆弱性を放置することになるので、一般利用はできなくなりますね)

一方で、Windows10の終了時期も近づいていますが、Win11になるとIEは削除されるようです。
(MSによる移行奨励期間もすでに終わっていますし)
そうなれば、(ご提示が無いので不明ですが)本来の目的のコードもまったく動作しなくなる可能性が高いと想像できます。
(ガラパゴス状態を保てば別ですが)


多分、目的はスクレイピングであろうと推測しますので、根本的な解決として、早急に方法を改善するのが宜しいかと思われます。
単純にソースを取得するだけで良いのであれば、HTTPRequestで直接取得する方法もありますし、対象ページがスクリプト等でデータを取得している場合にはブラウザ経由の方法が簡単かも知れません。
https://tonari-it.com/excel-vba-http-request/
https://www.octoparse.jp/blog/intro-to-web-scrap …
いずれにしろ、質問者様には知識がなさそうですので、元のコードを作成なさった方にお願いすることになるのではと想像します。

方法としては別になりますが、最近の(といっても大分以前からですが)エクセルには「WEBデータを取り込む」機能がありますので、そちらを利用する方法も考えられると思います。
(一度セットしておけば「再読み込み」で新しいデータを取得できるはず)
https://exceljoshi.cocoo.co.jp/media/excel-vba-w …
対象が単純なものであれば、こちらの方がはるかに簡単だと思いますし、OSやエクセルのバージョンアップがあっても対応されるでしょう。
(ご利用のエクセルが、かなり旧い場合には使えませんけれど)


ご質問の「キャッシュのクリア」に関してですが、応急処置として、
 「VBAでクリアするのではなく、IEの設定でキャッシュをしなくする」
という方法で対応可能と思います。
当方IEを所有していないので、具体的な設定方法は忘れましたし、何分古い情報なのですが、以下のような方法で設定可能であろうと思います。
https://www.rakuten.ne.jp/gold/_rule/temporary-i …
この設定をしておけば、常にキャッシュがクリアされた状態になるはずです。
この回答への補足あり
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
まず、コレまでの方法で問題ないこと、
ということで、私の環境が変わったとのこと、
了解です。

色々教えていただいたので、
これから分からないなりに勉強してみます。

なお、
今回の件を解決しても、i/eが使えなくなるということは致命的ですね。
貼って頂いたリンクを読んでいて、
win11では既に無くなっていて、
その代わりとして「IEモード」があるとのこと。
細かく書きませんでしたが、私のwin10でも同様です。
使っているのはedgeです。
(正しくはブラウザはchromeでedgeはIEモードです。)
コレもやがては消えてしまうということでしょうか。
困ったものです。

兎に角、貼って頂いたリンク、
一つづつ読ませていただきます。

お礼日時:2024/10/31 17:39

No1です。



語句に間違えがありました。すみません。
訂正しておきます。

誤:バージョンアップ
  ↓ ↓ ↓
正:アップデート
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A