0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

さくらエディタの複数マクロのロジックを一つのファイルにまとめる方法

Last updated at Posted at 2020-06-05

#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

#ダメな例
マクロの登録画面で直接引数を指定
image.png

実行時はエラーになります
image.png
※もう1つの問題として、Test.vbsが実行できたとしてもWscriptオブジェクトが参照できません。
image.png

#実行可能な例
ラッパー用の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)

上記のファイルをマクロに登録します
image.png

#問題点
Test.vbsファイル内では、Editorオブジェクトにアクセスできないため、使用はかなり限定されます
※この問題を解決する別の方法を考えました
さくらエディタの複数マクロのロジックを一つのファイルにまとめる方法  その2

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?