プロが教えるわが家の防犯対策術!

ExcelVBAでリンク先をIEで開いたのですが、
リンクのファイルをVBAでDLしたいです。
対象のファイルはxlsです。

単純にURLDownloadToFile関数を使ってみましたが、
IEのページがxls形式で保存されただけでした。

どうやればリンクで右クリックから対象のファイルを保存する
処理をExcelVBA実現できますか?

ご存知の方、教えてください。

A 回答 (3件)

スクレイピングして求めているURLのパスを得た上で、URLDownloadToFile()を実施してください。


https://qiita.com/SoreKiita/items/4b4c845b7378f6 …

Webページの仕組み上からダウンロードするファイルの明確なURLを得ることができない場合、URLDownloadToFile()を利用することはできません。
その場合は、手動操作で行われる処理をすべて解析した上でエミュレートしてナビゲーションするか、クリックするなどのIE操作をエミュレーションしてIEの機能としてダウンロードするしかありません。
    • good
    • 0
この回答へのお礼

ありがとうございます。MSHTMLでやったらできました。

お礼日時:2022/02/03 13:58

こんばんは



>ExcelVBAでリンク先をIEで開いたのですが~
>単純にURLDownloadToFile関数を使ってみましたが、~
IEの制御と、URLDownloadToFile関数は理解なさっているものと解釈しました。

保存したいファイルのURLを取得して、そのURLに対してURLDownloadToFile関数を使えばご質問内容は実現できるものと想像します。
ファイルのURLがどのような形式で記述されているのか不明ですが、例えばリンクタグに記述されているとするなら、DOMから当該リンク要素を取得して、href 属性を読み取れば良いです。
(他の仕組みの場合は、それに合わせて取得する必要があります)
(また、相対アドレスの場合は、絶対アドレスに変換する必要があるでしょう)

以下、ご参考までに。
(検索すれば、他にもいろいろ解説サイトが見つかるはずです。)
https://nujonoa.com/vba-ie-linkall-click/
    • good
    • 0

ファイルのURLにアクセスしたらできそうな予感がしました。

    • good
    • 1

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

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


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