#vbsファイルの引数でマクロの挙動を分岐させます
サンプル
Test.vbs
Option Explicit
Select Case Wscript.Arguments(0)
Case "1"
Call Test1
Case "2"
Call Test2
End Select
Call MsgBox("パターン1を終了します")
'または以下でもOK
Dim Func
Set Func = GetRef("Test" & Wscript.Arguments(0))
Call Func
Call MsgBox("パターン2を終了します")
Sub Test1()
Call MsgBox("Test1が実行されました")
End Sub
Sub Test2()
Call MsgBox("Test2が実行されました")
End Sub
実行時はエラーになります
※もう1つの問題として、Test.vbsが実行できたとしてもWscriptオブジェクトが参照できません。
#実行可能な例
ラッパー用のvbsファイルを作成します
Test1.vbs
Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.CurrentDirectory = CreateObject("Scripting.FileSystemObject").GetParentFolderName(Editor.ExpandParameter("$M"))
Call objShell.Run("Test.vbs 1",,True)
Test2.vbs
Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.CurrentDirectory = CreateObject("Scripting.FileSystemObject").GetParentFolderName(Editor.ExpandParameter("$M"))
Call objShell.Run("Test.vbs 2",,True)
#問題点
Test.vbsファイル内では、Editorオブジェクトにアクセスできないため、使用はかなり限定されます
※この問題を解決する別の方法を考えました
さくらエディタの複数マクロのロジックを一つのファイルにまとめる方法 その2