WSHマクロとPPAマクロ

ここでは、WSHとPPAそれぞれの情報を記載してあります。

WSHマクロ(JScrpt/VBScript等)

WSHがインストールされている必要があります。
WSHとはWindows Scripting Host の略で、Windows98 以降であれば、標準でインストールされています。

エディタを操作するためのオブジェクトは Editor です。メソッド名及びその引数はキーマクロと同じです。
オブジェクトは省略しても動作しますが、Editor.関数名(言語依存)のようにオブジェクト名を付けることを推奨します。

WScript オブジェクトは wscript.exe/cscript.exe が内蔵しているためサクラエディタでは使えません。
任意のActiveXオブジェクト(WScript.Shell等)は、VBScriptならCreateObject、JScriptならActiveXObjectで取得して使ってください。
また、サクラエディタのEditorなどのオブジェクトを WScript.exe などから利用することはできません。

.vbs, .jsの他、追加のエンジンをインストールしていれば、それも使えることがあります。
しかしながら、エディタ側の問題で、正常に動作しない環境や、エンジンがあるようです。

hint
マクロの実行にWSHを使用できるようになりました。(sakura:1.3.3.0以降)
Windows95系OSでWSHが一応動くようになりました。(sakura:1.4.3.4以降)
VBScriptからMsgBox, Inputが使用できるようになりました。(sakura:1.5.7.0以降)

PPAマクロ

●PPA.DLL
PPA.DLLが必要です。PPA ではマクロで制御構文や変数が利用できます。

ダウンロードは以下のサイトから可能です。
http://ht-deko.minim.ne.jp/junkbox.html#PPA
サクラエディタのマクロ関数は、「S_関数名」と、S_をつけてください。

「(省略可能)」と書かれている引数もPPAでは省略することができません。
そのため、サクラエディタのバージョンが変更されると、引数の数が一致せずエラーになることがあります。

(sakura 2.0.0.0以降)サクラエディタは内部文字列をUnicodeで保持しています。
しかしPPAに引数・戻り値として設定される文字列はSJISに変換されるため、SJISに含まれない文字列は扱えません。
S_Char/S_CharIme関数の引数はinteger型として扱われるため、例外的にUnicodeコードポイントで指定します。

PPAでは、デバッグ用文字列型変数UserErrorMesを利用できます。
この変数に書き込んでおくと、PPAがエラーを返したときに表示されるメッセージボックスに、この変数の内容も表示されます。(sakur:1.4.2.0以降)

IsDefine( 'sakura-editor' );
を利用すると、マクロを実行しているのがサクラエディタかどうか判別できます。(sakura:1.4.2.0以降)


PPAでは、文字列型の中にNULを含める事ができません。選択文字列にNULが含まれていた場合は、NULの手前までしかアクセスできません。

hintヒント
PPAのマクロ中では $41 などの 16進数表記や変数・数式・関数の使用も可能です。
文字列はシングルクォーテーションで括り、シングルクォーテーション文字そのものは '' と記述します。\ という文字は \ のままです。

hintマクロの実行にPPA.DLLを使用できるようになりました。PPA.DLL ver1.0以上が必要です。(sakura:1.2.106.1 以降)
sakura:1.4.2.0以降では、PPA.DLL ver1.23 以上である必要があります。