電子書籍の厳選無料作品が豊富!

「ファイル名.vba」というファイルをダブルクリックするだけで、特定のサイト(http/ftp上)のあるファイルをデスクトップ上に持ってくるシェルスクリプトを考えています。

単純にスクリプトだけで実現したいので、何かソフトをインストールし、スクリプトの中でそれを実行する…というのは考えていません。

なんか参考になるサンプル、もしくはホームページご存知でしたら宜しくお願いします。(VBAは初心者です)

ちなみに、OSは、win2000です。

A 回答 (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です。
↓こちらからダウンロードできます。
 マニュアルもここから入手可能です。

参考URL:http://www.microsoft.com/japan/msdn/scripting/de …
    • good
    • 0
この回答へのお礼

たくさんのサンプルを書いてくださりありがとうございました。

お礼日時:2002/10/16 23:25

最後に



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 が《保存》です。
    • good
    • 0
この回答へのお礼

たくさんのサンプルを書いてくださりありがとうございました。

お礼日時:2002/10/16 23:25

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」が入力されて
「名前を付けて保存」ダイアログが出ます。
    • good
    • 0
この回答へのお礼

たくさんのサンプルを書いてくださりありがとうございました。

お礼日時:2002/10/16 23:25

ちなみに、


IE.Visible = true

IE.Visible = false
とすると、InternetExplorerが見えないので
精神衛生上いいかもしれません。
    • good
    • 0
この回答へのお礼

たくさんのサンプルを書いてくださりありがとうございました。

お礼日時:2002/10/16 23:25

例えば、



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 メソッドでキーを自動入力させます。
    • good
    • 0
この回答へのお礼

たくさんのサンプルを書いてくださりありがとうございました。

お礼日時:2002/10/16 23:24

>単純にスクリプトだけで


でしたら、VBScript の ****.vbs ですね。

本家です。


参考URL:http://www.microsoft.com/japan/msdn/library/defa …

この回答への補足

おっしゃる通りです、やさしくク指摘して頂きありがとうございます。
vbsの間違いです…。(^^;

さっそく、提示していただいたサンプルに少しずつ手を加えながら
実行しましたら、ほぼ希望通りのことができるようになりました。
あまりメジャーでないような気がしますが、wshって何気に便利ですね…。

教えていただいたURLをもっと読んでさらに勉強したいと思います。
この度はありがとうございました。

補足日時:2002/10/16 23:18
    • good
    • 0
この回答へのお礼

おはようございます。
短い時間にたくさんの回答をありがとうございます。
今時間がないので、またあとでじっくりと見たいと思います。
とりあえず、感謝の気持ちが伝えたかったので…。
どうもありがとうございました!

お礼日時:2002/10/16 07:27

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