サクラエディタのマクロの使い方|キーマクロの記録とJScriptマクロの作り方【サンプル付き】

サクラエディタマクロ
hr

サクラエディタの「マクロ」を使うと、毎回手作業で行っている書き換えや整形を、ワンクリックで実行できるようになります。この記事では、操作を記録するだけで作れる「キーマクロ」と、JavaScript(JScript)で書く本格的なマクロの作り方・使い方を、コピーして使えるサンプル付きで解説します。

サクラエディタ自体の特徴やインストール方法は、「サクラエディタとは?」で解説しています。

サクラエディタのマクロの種類

種類ファイルの拡張子作り方向いている作業
キーマクロ.macエディタの操作を記録する同じキー操作の繰り返し
JScript マクロ.jsJavaScript の書き方でプログラムを書く条件による処理の切り替えや、複雑な書き換え
VBScript マクロ.vbsVBScript でプログラムを書くVBA などに慣れている人の自動化

まずはキーマクロで「記録して繰り返す」感覚をつかみ、もっと複雑なことをしたくなったら JScript マクロに進むのがおすすめです。

キーマクロ:操作を記録して繰り返す

キーマクロは、キーボードで行った操作を記録して、何度でも再生できる機能です。例として、「行の先頭に『・』を付けて、次の行に移る」操作を記録してみます。

記録する

  1. サクラエディタで、箇条書きにしたい文章を開き、1 行目にカーソルを置きます。
  2. メニューの「ツール」から「キーマクロの記録開始/終了」を選びます。ここから操作の記録が始まります。
  3. キーボードの「Home」キーで行の先頭に移動し、「・」を入力して、「↓」キーで次の行に移ります。
  4. もう一度「ツール」→「キーマクロの記録開始/終了」を選ぶと、記録が終わります。

実行する・保存する

「ツール」→「キーマクロの実行」を選ぶたびに、記録した操作が繰り返されます。ショートカットキーに割り当てておくと、キーを押すだけで 1 行ずつ処理できて便利です。

記録したキーマクロは、次に記録すると上書きされます。ほかの操作を記録したあとでも使いたい場合は、「ツール」→「キーマクロの保存」で名前を付けて .mac ファイルとして保存しておき、「キーマクロの読み込み」で読み込んで使います。

JScript マクロ:プログラムで自由に処理する

JScript マクロは、JavaScript とほぼ同じ書き方で処理を書けるマクロです。「選択した文字列を取り出して、加工して、書き戻す」といった、キーマクロではできない処理が作れます。

マクロファイルの作り方と保存の注意点

  1. サクラエディタで新しいファイルを開き、下のサンプルの右上にある「コピー」ボタンでコードをコピーして貼り付けます。
  2. 「ファイル」→「名前を付けて保存」を選びます。
  3. ファイル名を「insert-date.js」のように、拡張子を .js にします。
  4. 「文字コードセット」で「UTF-8」を選び、「BOM」にチェックを入れて保存します。

サクラエディタは、BOM 付きの UTF-8 で保存されたマクロは UTF-8 として、それ以外は Shift_JIS として読み込みます。日本語を含むマクロを BOM なしの UTF-8 で保存すると、文字化けしてエラーになるので注意してください(Shift_JIS で保存しても動きます)。

マクロを実行する

  1. マクロを使いたいファイルを、サクラエディタで開きます。
  2. 「ツール」→「名前を指定してマクロ実行」を選びます。
  3. 保存した .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 で保存する
  • 「ツール」→「名前を指定してマクロ実行」で、すぐに実行できる
  • 入手元がわからないマクロは実行しない

関連する記事・ツール

ABOUT ME
hr
hr
エンジニアとして働いている hr です。仕事や資格勉強で「こんなツールがあれば」と感じたものを、無料Webツールと解説記事にして発信しています。
記事URLをコピーしました