Dim MyWSHL Set MyWSHL = CreateObject("WScript.Shell") MyWSHL.Run("実行したいもの") Set MyWSHL = Nothing |
実行したい内容によって書き方いろいろ たとえば電卓を実行したい場合 .Run("calc.exe") たとえばメモ帳を実行したい場合、というか、メモ帳を素で実行したい場合、というかメモ帳で新規作成したい場合 .Run("notepad.exe") たとえばメモ帳で既存ファイルを開きたい場合(""の数と空白の入れ方に注意) .Run("""notepad.exe"" ""開きたいファイルのフルパス""") 電卓やメモ帳など、「正体がわかりきった」ソフトというかアプリというかプログラムというかexeファイルというか、の場合は名前だけでいいみたいですけど("EXCEL.EXE", "MSACCESS.EXE", "WINWORD.EXE"あたりも、わかりきったものとしてあつかってもらえる様子)、出どころ不明のプログラムの場合(自作とかネット上から拾ってきたとか)は、 .Run("C:\MyFooApp\MyHogeSoft\Puni.exe") な感じで、フルパス入れてください。 実行できるファイルってのは何も実行ファイルに限ったもんじゃないんで(いったい何を言っているんだ)、いや、exeじゃなくても実行できるファイルはあるわけで、たとえば、batファイルなんてものにも適用できます。 .Run("batファイルのフルパス") それから言わずもがなのvbsファイル。これだって実行ファイルじゃないけど実行できます。 .Run("vbsファイルのフルパス") ではダメです。 vbsファイルを実行させているものの正体はどうやら wscript.exe というものらしいです。というわけで .Run("""wscript.exe"" ""実行したいvbsファイルのフルパス""") |
Dim MyWSHL Dim MyLNK Set MyWSHL = CreateObject("WScript.Shell") Set MyLNK = MyWSHL.CreateShortcut("ショートカットを置きたい場所フルパス" & "\" & "ショートカットにつけたい名前" & ".lnk") MyLNK.IconLocation = "ファイル実体のフルパス" & ",0" MyLNK.TargetPath = "ファイル実体のフルパス" MyLNK.WorkingDirectory = "ファイル実体がある場所フルパス" MyLNK.Save Set MyLNK = Nothing Set MyWSHL = Nothing |
これも例を書かなきゃ分かりにくいかな。 "ショートカットを置きたい場所フルパス"ってのは省略可能ですけど、その場合はここ(vbsファイルのある場所)になります。 Set MyWSHL = CreateObject("WScript.Shell") Set MyLNK = MyWSHL.CreateShortcut("えっくせる.lnk") MyLNK.IconLocation = "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" & ",0" MyLNK.TargetPath = "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" MyLNK.WorkingDirectory = "C:\Program Files\Microsoft Office\Office10" MyLNK.Save Set MyLNK = Nothing Set MyWSHL = Nothing↑Excel.EXE のある場所はマシンによって違うような気がします。 (丸ごとコピーしてもエラーになる可能性あり) 自分で調べてください。 |
カレントディレクトリ(今いる場所)だったらDim MyWSHL Dim MyStr Set MyWSHL = CreateObject("WScript.Shell") MyStr = MyWSHL.CurrentDirectory Set MyWSHL = Nothing MsgBox MyStr と、思ってたんですけど、どうなんでしょうかね。 このやり方で得られた答って、どうも信用できないことがある。 (きわどい使い方をした場合に限ると思うんですけど、何度かデタラメな答に出くわした) ↓のほうがいいような気がしてきました。 Dim MyStr MyStr = Replace(WScript.ScriptFullName, WScript.ScriptName, "") MyStr = Left(MyStr, Len(MyStr) - 1) MsgBox MyStr |
デスクトップとかマイドキュメントとか、どう見てもまともじゃない場所だったらDim MyWSHL Dim MyStr1, MyStr2 Set MyWSHL = CreateObject("WScript.Shell") MyStr1 = MyWSHL.SpecialFolders("Desktop") MyStr2 = MyWSHL.SpecialFolders("MyDocuments") Set MyWSHL = Nothing MsgBox MyStr1 & Chr(10) & MyStr2まともじゃない? はあ? 意味わからん、と思った方は、たぶんこの機能を差し迫って必要とはしていません。 「どう見てもこいつら普通じゃねーぞ、どうしたらいいんだぁ?」となったときに、もし憶えていたらあらためてお立ち寄りください。 |