dポイントプレゼントキャンペーン実施中!

下記の質問回答を参考にし、複数のWebページをHTML形式で保存することを行っていました。
が、IEのバージョンが上がりタブブラウザが本格的になるとこの方法が通用しなくなってしまいました。
その後はごまかしながら旧IEバージョンを用いて取り込みをしているのですが、さすがにそろそろ限界になってきた次第です。
どなたか直近のIEのバージョンでも対応可能な方法をご存知でしょうか?

https://oshiete.goo.ne.jp/qa/4253824.html
http://www.ken3.org/vba/backno/vba120.html

よろしくお願いいたします。

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

  • 少々言葉足らずだったかもしれませんが・・・
    もちろんWebサイトを直接コピーしてExcelシートに貼り付け、という方法は私も存じております。が、それではちょっと難しいのです。
    目的として何がしたいのかというと、対象のページをHTML形式で保存することによって一緒にくっついてくる.filesフォルダの中にある画像(商品価格を画像にしたもの)を取り出す、ということをしたいのです。
    極端な話、その目的の画像だけをWebから取り出せればそれでいいのですが、手っ取り早い方法が上記だったわけで。
    とはいえ、現状ではかなり難しそうですね。

      補足日時:2015/02/02 22:10
  • 確かに、目的を考えると趣旨が異なっていたかもしれません。
    問題だったのは必要な画像が価格表示する為に都度生成されるようで、
    ただ単にダウンローダやExcelVBAで対象ファイルのURLからコピーする方法では通用しなかった、というのがあります。
    色々と思案した結果、下記の方法で落ち着きました。

    IEを操作してページをExcelシートに全コピー

    画像の代替テキストに書かれているURLに条件である「.aspx」があるものを探す

    見つかったらその画像を別シートにコピー

    結局のところ事故解決ですが、WindFaller様、色々とご回答ありがとうございました。

      補足日時:2015/02/03 15:52

A 回答 (3件)

こんばんは。



>もちろんWebサイトを直接コピーしてExcelシートに貼り付け、という方法は私も存じております。が、それではちょっと難しいのです。

>.filesフォルダの中にある画像(商品価格を画像にしたもの)を取り出す、ということをしたいのです。

えっ! それは、ここのスレでは一度もでていない話だと思います。
まったく違う内容だと思いますが。むろん、私なら、VBAで可能かもしれませんが、あえて面倒なことをする気にもなりません。

ダウンローダーを使えば、何十個でも、何百個でも、種別に選別して数分でダウロードできます。

以下はアマゾンサイトのあるページを、ダウンローダーでみたjpg/pngのファイル一覧です。
「ダウンローダー フリー」とでもググればいくつか出てきます。たぶん、ソフトウェアには、Malware は入っていないと思いますが、この種のものは、余計なものをインストールされることがありますから、十分に気をつけてインストールしてください。
「EXCEL VBAでwebページを保存す」の回答画像3
    • good
    • 0
この回答へのお礼

補足にある通りです。色々とありがとうございました。

お礼日時:2015/02/03 15:53

#1の補足です。



後々、また考えてみましたが、IEをVisible(表示)しているという点で、それを見る側にとっては、なんとも、無駄なことをしているように思えます。もちろん、このコードの作者は、ユーザーに確認させるためで、いきなり、Visible =False にはしないという暗黙的なルールに則っているだけです。それゆえ、Tabでひとまとめにできないのか、と思ったのではないでしょうか?

ご希望通りに、確かにTabで、ひとまとめにはできるのですが、実際のアクセスの段階では、別々(IEオブジェクトが複数)になってしまうようです。IEの立ち上げから、タブを一つ一つと開けます。そしてループでダウンロードも可能なのですが、よく考えてみれば、その元のURLは、複数あって、それを単にIEを複数にするのか単独でするかの違いなのです。(この説明ではよく分からないかもしれません。)

#1では、けんもほろろに回答してしまいましたが、おっしゃっている意図は分かるのですが、それをすることによって、ほんのちょっとの違いと、場合によっては、IEのハングということをもたらす可能性はないとは言えないのです。

反対の例としては、Evernoteを始め、同様の昨今のツールは、単独で、サイトを複数を取得するわけではありません。確か、昔、Web自動巡回という便利なソフトウェアがありましたが、あれも癖もので、不要なものも多く撮ってくるという始末の悪いものでした。後々、とても見きれるレベルではありませんでした。

もう一度、考えなおしてみてください。
なお、私個人は、複数よりもHTMLではなく、必要な情報をVBAで抜き出すということを考えます。
    • good
    • 0

こんばんは。



>IEのバージョンが上がりタブブラウザが本格的になるとこの方法が通用しなくなってしまいました。
何が、通用しないのでしょうか?

いろいろと検証してみましたが、タブ・ブラウザだから、いままでのコードがダメだという理由が良く分からないのです。しばらく、グーグルで、MSDNやら他の英語サイトも読んでみましたが、未だIEのタブ・コントロールというメソッドは、どうやら存在しないようなのですし、タブ・コントロールのタイプライブラリも公では見当たりません。むろん、それなりには、私自身、プログラムでタブの切り替えは可能です。

しかし、本来の目的である、HTMLのダウンロードとは直接関係のない問題です。言い換えると、タブ・コントロールすること自体が、あまり意味があることではない、ということに気が付きました。

ユーザーが任意で開いた複数のサイトを全てHTMLで保存するコードということであれば、また、話は違ってきますし、それなりには考えますが、リンク先のコードは、そのような趣旨ではありません。

>ごまかしながら旧IEバージョンを用いて取り込みをしているのですが、
前の人たちのログも読みましたが、HTMLのダウンロードに関しては、基本的には、前も現在も変わらないものというしかありません。

実際、HTMLでダウンロードすること自体は、コードを読んで分かる通り、コードの最初からサイトのURLの設定になっているのですから、それぞれのIEオブジェクトですればよいことで、仮に、それをタブで切り分けたところで、やることはほとんど同じです。何が問題になっているのか、今ひとつ理解できませんでした。
    • good
    • 0

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