|
G-Luckさん,ちゃっぴさんありがとうございました。
一応解決しました。
abc.wsfがあるフォルダ>c:\abc
ShellExecute 0, "open", "abc.wsf", "", "c:\abc\", 1
で実行できました。
というか,これは私のミスで。実は,マルチポストしてしまいました。
問題の解決を急ぐあまり,別の掲示板にも同じ質問を投稿してしまい,
そちらで,マルチポストを指摘されました。そして,そちらで丁寧に
解決策も教えてもらいました。それが,上のものでした。
というわけで,丁寧にご回答いただいたのに,ちょっと裏切ったような
後ろめたさを感じながらお詫びとお礼をさせていただきこの質問を打ち切らせて
いただきます。
皆さんの善意に感謝しています。もし,また別件でお邪魔するかもしれませんが
そのときはよろしくお願いします。
▼Qwsf さん:
>はじめまして,wsfファイルという存在を知り,初めて利用してみました。
>さっそく,質問があります。
>abc.wsfの実行方法についてです。ダブルクリックするときちんと実行されます。このabc.wsfをエクセルのVBAから実行する方法を今模索中です。いろいろネットで調べて試したのですが実行されませんでした。その例を紹介します。おかしな点があれば遠慮なくご指南ください。
>OSは,windowsXP,windowsME,windows98SEを使っています。
>実行例その1:runwsf.xls内のモジュール1
>////////////////////////////////////////////////
>Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
>(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
>ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd_ As Long) As Long
>
>
>Sub Run_Wsf()
>On Error GoTo errline
>
> ShellExecute 0, "open", "abc.wsf", "", "%WINDIR%\system32\wscript.exe", 1
>
>
>errline:
>Err = 0
>
>End Sub
>
>実行例その2:runwsf.xls内のモジュール2
>////////////////////////
>Sub Run_Wshell()
> Dim WSHShell
> Dim wsfPath As String
>
> wsfPath = ThisWorkbook.Path & "\abc.wsf"
>
> Set WSHShell = CreateObject("WScript.Shell")
>
> WSHShell.Run wsfPath
> MsgBox "abc.wsfを起動しました。"
>
>End Sub
>
>'一応”abc.wsfを起動しました。”というメッセージは表示されますが,何も実行されているようには見えません。
>
>実行例その3:runwsf.xls内のモジュール3
>///////////////////////
>Sub Run_Shell()
>
> Shell "wscript.exe g:\temp\abc.wsf"
>
>End Sub
>/////////////////////////////////////
>以上3つほど試してみましたが,きちんと実行されませんでした。
>ぜひ,アドバイスをお待ちしております。
|
|