- ベストアンサー
VBAでHTTP(又はFTP)を使う方法について
「ファイル名.vba」というファイルをダブルクリックするだけで、特定のサイト(http/ftp上)のあるファイルをデスクトップ上に持ってくるシェルスクリプトを考えています。 単純にスクリプトだけで実現したいので、何かソフトをインストールし、スクリプトの中でそれを実行する…というのは考えていません。 なんか参考になるサンプル、もしくはホームページご存知でしたら宜しくお願いします。(VBAは初心者です) ちなみに、OSは、win2000です。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
IE6sp1でない場合 《ファイルのダウンロード》ダイアログが出ないで いきなり 《名前を付けて保存》ダイアログが出るかも。 それと、 WshShell.SendKeys "%i" WshShell.SendKeys "{DOWN}{UP 10}{DOWN}{ENTER}" WshShell.SendKeys "%s" このままだと、キー入力スピードに Windowsが追いつけない場合は WScript.Sleep(100) (0.1秒停止という意味) を足して WshShell.SendKeys "%i" WScript.Sleep(100) WshShell.SendKeys "{DOWN}" WScript.Sleep(500) WshShell.SendKeys "{UP 10}{DOWN}{ENTER}" WScript.Sleep(100) WshShell.SendKeys "%s" とこんな感じにするといいかも。 Windows2000に付属している VBScriptエンジンは Windows Script Hostといういわれている言語の1つで 他にJScriptというJavaScriptとそっくりなエンジンも Windows2000に搭載されています。(拡張子はjs) Windows script Host は現在バージョンは5.6です。 ↓こちらからダウンロードできます。 マニュアルもここから入手可能です。
その他の回答 (5)
- ittochan
- ベストアンサー率64% (2667/4137)
最後に WshShell.SendKeys "%s" の次の行に act("名前を付けて保存") WshShell.SendKeys "%i" WshShell.SendKeys "{DOWN}{UP 10}{DOWN}{ENTER}" WshShell.SendKeys "%s" 挿入します。 するとデスクトップに保存されるようになります。 %i は《保存する場所》を選択し {DOWN} でプルダウンを開き、 {UP 10} で一番上であろうところへ移動し、 {DOWN} で上から2番目の《デスクトップ》が選択され(私の場合) {ENTER} で選択を確定します。 最後の %s が《保存》です。
お礼
たくさんのサンプルを書いてくださりありがとうございました。
- ittochan
- ベストアンサー率64% (2667/4137)
ANo.#2のスクリプトに 'IE6Sp1の場合 act("ファイルのダウンロード") WshShell.SendKeys "%s" sub act(s) for j=0 to 600 WScript.Sleep(100) 'ダウンロードダイアログの確認 if wshShell.AppActivate(s) then exit for elseif j=599 then '1 分待ってもウィンドウが開かない場合はあきらめる IE.Quit WScript.Quit end if next end sub これを追加すると、 「ALT」+「s」が入力されて 「名前を付けて保存」ダイアログが出ます。
お礼
たくさんのサンプルを書いてくださりありがとうございました。
- ittochan
- ベストアンサー率64% (2667/4137)
ちなみに、 IE.Visible = true を IE.Visible = false とすると、InternetExplorerが見えないので 精神衛生上いいかもしれません。
お礼
たくさんのサンプルを書いてくださりありがとうございました。
- ittochan
- ベストアンサー率64% (2667/4137)
例えば、 dim objArgs dim WshShell Set objArgs = WScript.Arguments Set WshShell = WScript.CreateObject("WScript.Shell") dim IE Set IE = WScript.CreateObject("InternetExplorer.Application") 'IEを表示 IE.Visible = true Do While IE.Busy Wscript.Sleep 10 Loop 'IE5.5 のインストーラーをダウンロード IE.Navigate "http://www.mkk.ed.jp/gard/gard.htm の、2 バージョン4の方は,まずバージョン5にしてからバージョン6にします。(exeファイル)" これをittochan.vbs として実行すると、 ie5setup.exe のダウンロードダイアログが出るので、 SendKeys メソッドでキーを自動入力させます。
お礼
たくさんのサンプルを書いてくださりありがとうございました。
- ittochan
- ベストアンサー率64% (2667/4137)
>単純にスクリプトだけで でしたら、VBScript の ****.vbs ですね。 本家です。 ↓
お礼
おはようございます。 短い時間にたくさんの回答をありがとうございます。 今時間がないので、またあとでじっくりと見たいと思います。 とりあえず、感謝の気持ちが伝えたかったので…。 どうもありがとうございました!
補足
おっしゃる通りです、やさしくク指摘して頂きありがとうございます。 vbsの間違いです…。(^^; さっそく、提示していただいたサンプルに少しずつ手を加えながら 実行しましたら、ほぼ希望通りのことができるようになりました。 あまりメジャーでないような気がしますが、wshって何気に便利ですね…。 教えていただいたURLをもっと読んでさらに勉強したいと思います。 この度はありがとうございました。
お礼
たくさんのサンプルを書いてくださりありがとうございました。