English help on website



execmacro文(Ver8.95対応版)
目次− execmacro文
 マクロの中から、さらに別のマクロを実行します。起動された側のマクロが終了すると現在のマクロの実行を続行します。
 パラメータでマクロのファイル名を指定してください。
 execmacroされたマクロからさらにexecmacroを実行する場合、execmacroのネストがあまり深くならないように注意してください。
execmacro "test.mac";

 第2パラメータ以降を指定して、マクロに文字列を渡すこともできます。(V8.00以降)
 渡したパラメータは、呼ばれたマクロ側でgetarg関数で取得できます。
 指定できるパラメータは31個までです。
execmacro "test.mac", "param1", "param2";

 execmacroで呼んだマクロの中でさらにexecmacroする場合、getargは元の状態を覚えていません。
 openfileで秀丸エディタが新しく起動する場合は、hidemaru.exeを起動したのと同じ扱いで、getargは元の状態を覚えていません。
 execmacroを呼ぶ前に、一度別の変数に退避しておく必要があります。
 /aやexecmacroで渡す引数の上限は31個です。

 execmacroで呼ばれたマクロは、endmacroにパラメータを指定して、戻り値(文字列)を設定することができます。
 戻り値はexecmacroから復帰した後getresultexで取得できます。(V8.00以降)

 第2パラメータに文字列の配列変数、第3パラメータに配列の個数を指定して渡すこともできます。(V8.66以降)
$a[0] = "param1";
$a[1] = "param2";
$a[2] = "param3";
#c=3;
execmacro "test.mac", $a, #c;

マクロの拡張子を".mac.cache"にすると、キャッシュファイルを自動生成し利用します。(V8.92β12以降)
例えば、execmacro "test.mac.cache";の場合、実行する対象のファイルは"test.mac"です。コンパイル済みのキャッシュファイル"test.mac.cache"が無いか、"test.mac"が更新されている場合は、"test.mac.cache"を生成します。
"test.mac.cache"が利用可能な場合は、利用します。
実行対象マクロの中身が大きい場合は効果がありますが、小さい場合は"test.mac"と"test.mac.cache"の2つのファイルを比べるため逆に遅くなる場合があります。
対応していないバージョンでは"test.mac.cache"をマクロファイルそのものとして読み込もうとしてエラーになるので注意が必要です。
setcompatiblemode 0x04000000;でキャッシュファイルは使わずメモリ上のキャッシュを使う方法もあります。


参照:getarg関数 argcountキーワード
参照:getresultex関数
参照:endmacro文