例えば返信メールコマンドで、もしも現在選択してるメールのFrom:ヘッダが特定の人なら「全員に返信」とする例は、以下のようになります。
loaddll "tkinfo.dll";
$from = dllfuncstr("CurrentHeader", "From");
$from = dllfuncstr("SetEmailOnly", $from);
$from = dllfuncstr("ToLower", $from);
if( $from == "maruo@mitene.or.jp" ) {
#n = dllfunc("MakeReplyCustom", "All", "", "");
} else {
#n = dllfunc("MakeReply");
}
マクロの中の処理として、tkinfo.dllの関数呼び出しじゃなくて、元々のコマンドをそのまま実行させたいことがあります。その場合は、
#n = sendmessage( hidemaruhandle(0), 0x111, コマンド番号, 0 );
のようにすればいいですが、場合によってはこれでうまくいかない可能性もあります。なぜかというと、sendmessageで実行される処理が「今現在マクロ実行中かどうか」を判断して実行内容を変えるような処理になってることがあるかもしれないからです。その辺は秀丸メールの作者も予想が難しいので、うまくいかない場合は利用しないようお願いします。
あと、補足としてですが、置き換えリストに入力出来る項目数自体には制限はありませんが、置き換えリストの文字列全体の長さについて、510バイト程度までの制限があります。あと、秀丸エディタのコマンドについては置き換え出来ません。秀丸メールのメニューに出てるコマンドで、コマンドコードが40000以上のコマンドに限って置き換え可能です。