last updated:2025/09/28
マクロを実行するには、何かしらのキー操作や起動オプションで指定する必要がありましたが、秀丸エディタVer.6.00 から秀丸エディタのイベント発生時にマクロを自動的に実行する事が可能になりました。 (Ver.6は一部のイベントのみ対応)
「イベント」とは、以下になります。
「自動起動マクロ」で何が便利になるかは実行するマクロによりますが、以下のような事が可能です。
「自動起動」なので、マクロを実行したくないファイルにもマクロを実行する事になります。その為、実行するマクロの内容にもよりますが、マクロ内で実行条件を絞るなど対策が必要な場合もあります。
「自動起動」ですが、マクロから操作した場合は基本的に「自動起動」する事はありません(例外あり)。
つまり、以下のマクロを実行しても「ファイルを開いた直後」で指定したマクロは、実行されません。ユーザーが操作した場合のみ実行されます。
openfile "〜";
通常のマクロと同じで、「マクロ」メニューから、「マクロ登録」を選択します。

「マクロ登録」ダイアログが表示されるので、「対象」から「自動起動」を選びます。

☑ファイルを開いた直後
「>>」ボタンを押すと以下の設定メニューが表示されます。
☑新規作成直後
☑保存直前と直後
☑印刷直前と直後
☑編集後タイマー
☑カーソル移動後タイマー
☑ファイルを閉じる直前
☑アクティブ切り替え後
指定できるマクロは1つだけです。複数のマクロを指定する場合には、以下の方法があります。
起動用のマクロを用意し、そのマクロの中から execmacro文 で各マクロを実行する。
この場合は、「キャッシュファイルを自動的に作成して高速化する」はあまり意味を持ちません。
Ver.8.92β12以降だと、execmacro文でマクロの拡張子を ".mac.cache" にすると、キャッシュファイルを自動生成し利用するので高速化できます。ただし、実際に高速化するかどうかはマクロ次第です。
自動起動させたい内容を1つのマクロにまとめる。自動起動マクロだけで使うなら、1つにまとめてしまうのもいいでしょう。
どちらがいいかは、状況次第となります。
自動起動マクロ用に以下の キーワード/関数/文 が用意されています。必要に応じて使用してください。 (「保存」と「印刷」の場合、「直前」と「直後」を識別するのに「geteventparam 関数」を使用します)
各キーワード/関数/文の詳細は、マクロヘルプの「自動起動マクロ」を参照してください。
geteventparam(0)
の戻り値で判定し、"0" なら「直前」、"1"なら「直後」を示します。
setcompatiblemode 文 で指定します。詳細は「setcompatiblemode文 について」
マクロ実行中に「自動起動マクロ」を実行する方法は提供されていないので、どうしても自動起動マクロを実行したい場合は、レジストリから登録情報をよみとり、
execmacro 文 で実行する方法もあります。ただし、通常の自動起動マクロと違い、eventキーワードやgeteventparam関数の戻り値はセットされません。