この機能を利用する場合、秀丸エディタ v8.98 (正式版 or β9以上)を強く推奨します。
そうでない場合、数値と文字列の型を間違えて実行すると秀丸が不正な状態となります。
hm.Macro.Eval(...)を「命令向けに特化」したものとして、「hm.Macro.Statement」が用意されています。
秀丸マクロにおいて「(関数のような)文」や「(関数のような)命令文」とは
moveto X座標, Y座標
のように呼び出しに「( )」が使われず、かつ、返り値を受け取らないものです。
一方、文と類似ですが「返り値」があり、「( )」を付けて呼び出すものを「関数」としています。
hm.Macro.Statement("秀丸マクロの文名", ...引数);
もしくは
hm.Macro.Statement.秀丸マクロの文名(...引数);
実行した秀丸マクロ文が無事成功したなら「秀丸マクロのresult相当の値が」、失敗したなら「0」以下がint型で入っています。
0とは限らないので注意してください。
ステートメントの実行そのものが成功したのかはResultプロパティではなくErrorプロパティで判定してください。
Resultプロパティでは実行に成功した結果、マイナスのresult値が返ってきていることもあり得ます。
秀丸マク関数を実行した後、秀丸マクロ関数に渡した引数が最終的にどういった値になったかを取得できます。
List<Object>型で、関数に渡した最初の引数が[0], 次の引数が[1], ... といった形で格納されています。
何か明確な例外が発生した場合はErrorプロパティにException型の例外インスタンスが入っています。
エラーがなければnullが入っています。
基本的には特になにもはいっておらず、空文字が入っています。
hmEdgeJSはほぼすべてが秀丸とは別スレッドで実行されているため、
秀丸の一部のマクロ命令文(menuやmenuarray)などが実行できません。
これらはマクロファイル内に直接記述してください。