• 締切済み

VBAでWebのデータを取得したい

MS OFFICEカテゴリに投稿後、一件の反応も無かったので旧質問は削除の上板換えします。本題はVBとVBAが異なることはを承知での質問です。 エクセルVBAで取引先のサイトにログインし、請求データをダウンロードしようとしています。 ログインから目的のページに移動/チェックボックス等の処理もできたので objIE.Document.all.Item("Command.csvFileDownload").Click とすれば「ファイルのダウンロード」ウィンドウがポップアップするかと思ったら、IEのセキュリティ保護にブロックされてしましました。 「マウスでクリックしたらちゃんとダウンロードできるのに?」と思うのですが、VBAでの操作は危険=ウィルス?と認識されて当然な気もします。 IEのセキュリティレベルを変更せずにVBAでダウンロードまですることはやはり無理なのでしょうか? 該当のタグは以下のとおりです。 <input type="image" name="Command.csvFileDownload" src="/img/hogehoge/btn_download.gif" onclick="noDblClickCheck=true;"onmouseover="this.src='/img/hogehoge/btn_download.gif'" onmouseout="this.src='/img/hogehoge/btn_download.gif'" alt="ダウンロード"> どうぞ宜しくお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 こちらは、プログラミング・カテゴリですから、ちょっと乱暴な書き方だったかもしれませんが、同じような質問が、Office 側で出ていました。偶然に、こちらのやっていることと、シンクロしていたので、こちらの知っている話をほとんど書いていますから、読んでいただけると分かると思います。 http://oshiete1.goo.ne.jp/qa5446271.html 結論からすると、Office 側の方は、cgiスクリプトでセキュリティを設置した可能性があるので、お手上げしたわけですが、Sinogiさん側のほうは、手段はまだ残されていると思います。 IEオブジェクトを使う限りは、レジストリの変更もやむをえないというところだと思います。ただ、掲示板では、自主規制で書かないようにはしています。教えなくても、分かる人は自分で分かるからです。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

#2,#3の回答者です。 >>該当するプログラムで、使用中だけセキュリティを書き換えれば >で信頼済みサイトの更新ができればうれしいのですが、レジストリ操作はご遠慮したいです m(__)m もし、プログラマなら、そういうことは背に腹は変えられないと思いますが。それで、誰か別の人間がそれを悪用するとか、問題が起こる可能性があるならやめるしかありませんが、その程度のことはいいと思いますし、そういうツールは良く見かけます。それ以外に、キーボードマクロで対応するという方法もあります。 >objIE.Document.all.Item("Command.csvFileDownload").Click まあ、このようにIEに依存するから、そういうことになるのかもしれませんが。

Sinogi
質問者

お礼

ご回答ありがとうございます。 >もし、プログラマなら、そういうことは背に腹は変えられないと思いますが 当方ITとは無縁の企業で、定例の事務作業を手抜きしようとしているだけの素人です。 なのでレジストリ云々といわれると、早々に尻尾を丸めてします(^^;; >まあ、このようにIEに依存するから、そういうことになるのかもしれませんが。 でWendy02様が言わんとされていることも理解できない私であれば「IE 信頼済みサイトの更新」はおとなしく手作業で処理するのが安全でしょうか・・・

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

補足: こちらのほうがよいですね。内容は古いけれどたぶん想像は付くと思います。 http://support.microsoft.com/kb/884429/ja Internet Explorer の Web コンテンツのゾーンでセキュリティレベルを設定する方法

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >MS OFFICEカテゴリ  まあ、VBなら、別の方法もあるかと思いますが、Office 系では個別の問題は回答しにくいことが多いです。 >IEのセキュリティレベルを変更せずにVBAでダウンロードまですることはやはり無理なのでしょうか? Vista +IE7以上ですか? Vistaは、自分のPCでなかったので試さなかったのですが、IEオートメーションを使うなら、該当するプログラムで、使用中だけセキュリティを書き換えればよいと思います。あまり、プログラマとしてのマナーが良くありませんから、ソースコードは公開はしません。 その内容は、以下で公開されているはずですから、 http://support.microsoft.com/kb/833633/ja Internet Explorer のマイ コンピュータ ゾーンのセキュリティ設定を強化する方法 を参考にして、管理者特権でレジストリを操作すればよいと思います。

Sinogi
質問者

補足

ご回答いただきありがとうございます。 当方の環境はXPSP3 IE6 です。職場PCでバージョンアップの予定はありません。ちなみに、VBAを記述しているのはExcel2002です。 >該当するプログラムで、使用中だけセキュリティを書き換えれば で信頼済みサイトの更新ができればうれしいのですが、レジストリ操作はご遠慮したいです m(__)m

すると、全ての回答が全文表示されます。
  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.1

インターネットオプションの信頼できるサイトかローカルイントラネットに 該当サイトを登録してみてはいかがでしょうか? IE8だとクリップボードの取得ですらabout:blankを追加しておかないと動かず、参りました。

Sinogi
質問者

補足

早速のご回答ありがとうございます。 信頼できるサイトに登録したところ、目的のクリックができました。(^^) しかし、先々の応用/運用を考えると「なんとかコードで対応できないものか」とも思い続けています。 「手作業でできること」を「コードでする」と別判定されるのがなんとも・・・

すると、全ての回答が全文表示されます。

関連するQ&A