最終更新日 2024-06-21

入門編 ~秀丸マクロの「(関数のような)命令文」を文字列で実行~

概要

この機能を利用する場合、秀丸エディタ v8.98 (正式版 or β9以上)を強く推奨します。
そうでない場合、数値と文字列の型を間違えて実行すると秀丸が不正な状態となります。

Hm.Macro.doEval(...)を「命令向けに特化」したものとして、「Hm.Macro.doStatement」が用意されています。

秀丸マクロにおいて「(関数のような)文」や「(関数のような)命令文」とは

moveto X座標, Y座標

のように呼び出しに「( )」が使われず、かつ、返り値を受け取らないものです。

一方、文と類似ですが「返り値」があり、「( )」を付けて呼び出すものを「関数」としています。

秀丸マクロの(関数のような)文を実行可能です。

マクロ実行中のみ実行可能

decltype(Hm.Macro)::IStatementResult Hm.Macro.doStatement(wstring statement_name, ...ステートメントの引数);

引数として「配列」を必要とする関数のような文

秀丸マクロの文や関数にはごく一部には「menuarray」など 引数として「配列」を必要とするものがあります。

今回は「秀丸マクロ文のmenuarray」を利用してみましょう。

setVar(...)、getVar(...)、doEval(...) などを組み合わせ、自分でラップしてC++上に menuarray 関数を作成しまえばよいでしょう。

Hm.Macro.doStatement(...) 返り値、IStatementResult 型のオブジェクト