サクラエディタのマクロの使い方|キーマクロの記録とJScriptマクロの作り方【サンプル付き】
サクラエディタの「マクロ」を使うと、毎回手作業で行っている書き換えや整形を、ワンクリックで実行できるようになります。この記事では、操作を記録するだけで作れる「キーマクロ」と、JavaScript(JScript)で書く本格的なマクロの作り方・使い方を、コピーして使えるサンプル付きで解説します。
サクラエディタ自体の特徴やインストール方法は、「サクラエディタとは?」で解説しています。
サクラエディタのマクロの種類
| 種類 | ファイルの拡張子 | 作り方 | 向いている作業 |
|---|---|---|---|
| キーマクロ | .mac | エディタの操作を記録する | 同じキー操作の繰り返し |
| JScript マクロ | .js | JavaScript の書き方でプログラムを書く | 条件による処理の切り替えや、複雑な書き換え |
| VBScript マクロ | .vbs | VBScript でプログラムを書く | VBA などに慣れている人の自動化 |
まずはキーマクロで「記録して繰り返す」感覚をつかみ、もっと複雑なことをしたくなったら JScript マクロに進むのがおすすめです。
キーマクロ:操作を記録して繰り返す
キーマクロは、キーボードで行った操作を記録して、何度でも再生できる機能です。例として、「行の先頭に『・』を付けて、次の行に移る」操作を記録してみます。
記録する
- サクラエディタで、箇条書きにしたい文章を開き、1 行目にカーソルを置きます。
- メニューの「ツール」から「キーマクロの記録開始/終了」を選びます。ここから操作の記録が始まります。
- キーボードの「Home」キーで行の先頭に移動し、「・」を入力して、「↓」キーで次の行に移ります。
- もう一度「ツール」→「キーマクロの記録開始/終了」を選ぶと、記録が終わります。
実行する・保存する
「ツール」→「キーマクロの実行」を選ぶたびに、記録した操作が繰り返されます。ショートカットキーに割り当てておくと、キーを押すだけで 1 行ずつ処理できて便利です。
記録したキーマクロは、次に記録すると上書きされます。ほかの操作を記録したあとでも使いたい場合は、「ツール」→「キーマクロの保存」で名前を付けて .mac ファイルとして保存しておき、「キーマクロの読み込み」で読み込んで使います。
JScript マクロ:プログラムで自由に処理する
JScript マクロは、JavaScript とほぼ同じ書き方で処理を書けるマクロです。「選択した文字列を取り出して、加工して、書き戻す」といった、キーマクロではできない処理が作れます。
マクロファイルの作り方と保存の注意点
- サクラエディタで新しいファイルを開き、下のサンプルの右上にある「コピー」ボタンでコードをコピーして貼り付けます。
- 「ファイル」→「名前を付けて保存」を選びます。
- ファイル名を「insert-date.js」のように、拡張子を .js にします。
- 「文字コードセット」で「UTF-8」を選び、「BOM」にチェックを入れて保存します。
サクラエディタは、BOM 付きの UTF-8 で保存されたマクロは UTF-8 として、それ以外は Shift_JIS として読み込みます。日本語を含むマクロを BOM なしの UTF-8 で保存すると、文字化けしてエラーになるので注意してください(Shift_JIS で保存しても動きます)。
マクロを実行する
- マクロを使いたいファイルを、サクラエディタで開きます。
- 「ツール」→「名前を指定してマクロ実行」を選びます。
- 保存した .js ファイルを選ぶと、マクロが実行されます。
よく使うマクロは、登録しておくとメニューやショートカットキーから実行できます。登録の方法は「サクラエディタのマクロを登録して使う方法」で解説しています。
すぐに使える JScript マクロのサンプル
次の 3 つのサンプルは、実際のサクラエディタ(v2.4 系)で動作を確認しています。
サンプル 1:今日の日付を入れる
カーソルの位置に、今日の日付を「2026-01-31」の形で入れます。議事録や作業メモに日付を書くときに便利です。
// カーソルの位置に、今日の日付を「2026-01-31」の形で入れる
var d = new Date();
var mm = ("0" + (d.getMonth() + 1)).slice(-2);
var dd = ("0" + d.getDate()).slice(-2);
Editor.InsText(d.getFullYear() + "-" + mm + "-" + dd);
サンプル 2:選択した文字数を数える
選択している範囲の文字数を、改行を除いて数えて表示します。
// 選択している文字数を数えて表示する(改行は数えない)
var text = Editor.GetSelectedString(0);
var count = text.replace(/\r?\n/g, "").length;
Editor.InfoMsg("選択している文字数は " + count + " 文字です(改行を除く)。");
サンプル 3:選択した行の先頭に「// 」を付ける
選択している各行の先頭に「// 」を付けて、まとめてコメントにします。
// 選択している各行の先頭に「// 」を付ける
var text = Editor.GetSelectedString(0);
if (text === "") {
Editor.InfoMsg("コメントにしたい行を選択してから実行してください。");
} else {
var nl = text.indexOf("\r\n") !== -1 ? "\r\n" : "\n";
var lines = text.split(nl);
for (var i = 0; i < lines.length; i++) {
// 選択範囲の最後が改行のとき、その後ろの空の行には付けない
if (i < lines.length - 1 || lines[i] !== "") {
lines[i] = "// " + lines[i];
}
}
Editor.InsText(lines.join(nl));
}
マクロでよく使う命令
マクロでは、「Editor.命令名()」の形でサクラエディタを操作します。よく使うものは次のとおりです。
| 命令 | 内容 |
|---|---|
| Editor.GetSelectedString(0) | 選択している文字列を取り出す |
| Editor.IsTextSelected() | 文字列を選択しているか調べる(選択していなければ 0) |
| Editor.SelectAll() | すべて選択する |
| Editor.InsText(文字列) | カーソルの位置に文字列を入れる(選択中なら置き換える) |
| Editor.InfoMsg(文字列) | メッセージを表示する |
| Editor.ErrorMsg(文字列) | エラーメッセージを表示する |
すべての命令は、サクラエディタのインストール先フォルダーにあるマクロのヘルプ(macro.chm)で確認できます。
書き方の注意:JScript は古い JavaScript
サクラエディタの JScript マクロは、Windows に組み込まれた古い JavaScript の仕組みで動きます。そのため、let や const、アロー関数(() => {})、テンプレート文字列(`...`)など、新しい書き方は使えません。変数は var、関数は function で書きましょう。
マクロを使うときの注意
JScript や VBScript のマクロは、書き方によってはパソコンのファイルを書き換えたり、ほかのプログラムを動かしたりできる強力な仕組みです。インターネットで見つけたマクロは、中身を確認してから使い、入手元がわからないものは実行しないようにしましょう。
また、マクロで書き換えた内容は「元に戻す」(Ctrl + Z)で戻せますが、大事なファイルは実行する前に保存しておくと安心です。
応用:XML を整形するマクロ
マクロを使えば、XML の整形のような複雑な処理もできます。当サイトの「XML 整形ツール」では、ブラウザ版と同じルールで整形できるサクラエディタ用のマクロを配布しています。ファイルの読み書きや通信を行わない、安全に使えるマクロです。
まとめ
- キーマクロは、操作を記録して繰り返せる。次に記録すると上書きされるので、残したいものは保存する
- JScript マクロは .js で保存し、日本語を含むなら「UTF-8(BOM 付き)」か Shift_JIS で保存する
- 「ツール」→「名前を指定してマクロ実行」で、すぐに実行できる
- 入手元がわからないマクロは実行しない
関連する記事・ツール
- サクラエディタとは?特徴と安全なダウンロード・インストール方法を解説
- サクラエディタのマクロを登録してメニューやショートカットキーから実行する方法
- XML 整形ツール【無料・登録不要】サクラエディタ用マクロ付き