2017年3月4日

【サクラエディタ】置換マクロを使ってみた



この前、仕事で何十個というテキストファイルの内容を書き換えるということがあって、一つ一つ置換をして書き換えていたんです。

でも途中から、ある思いに駆られるようになりました。

「めんどくせぇ!」(笑)

いや、これ冗談抜きにほんとめんどくさいです。
似たような内容を一つ一つ置換していくんですよ。

ものすごい非効率です。

プログラマーがこんなことやってていいのか!?
プログラマーならプログラム書いて速攻で終わらせるべきじゃないのか!?

そこで何かいい方法はないかと探したところ、ありました。

サクラエディタのマクロです。

かれこれ3年ぐらいサクラエディタを使っていますが、マクロが使えるということを今回初めて知りました。(笑)

そして、意外に使えるということに驚きました。もっと早く知っていればよかった・・・。

そんなわけで、今日は置換マクロの書き方です。

実際に仕事で置換作業をしたのはCSSファイルではなくiniファイルのようなファイルだったのですが、分かりやすくするためにCSSファイルの内容を置換する例で説明します。

たとえば複数のプロパティの値を変更する場合、下記のようにマクロを書きます。
//すべて置換マクロ
S_ReplaceAll('background:#f8f8f8;', 'background:#e6e6fa;', 24);
S_ReplaceAll('font-family: arial, sans-serif;', 'font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;', 24);

// 再描画
S_ReDraw(0);

少し解説すると、S_ReplaceAllは、「すべて置換」を行う関数で、第1引数は置換前の文字列、第2引数は置換後の文字列になります。そして、第3引数はオプションとして置換ダイアログの状態を指定します。

今回、24を指定してますが、これは「見つからないときにメッセージを表示」と「置換ダイアログを自動的に閉じる」を組み合わせた値で、ビットで判定しています。

詳細は、下記のサイトをご覧ください。
http://sakura.qp.land.to/SakuraMacro/reference/find/S_ReplaceAll.html


あとは、このマクロをテキストファイルに保存してサクラエディタで読み込ませて実行するだけです。


今回、このマクロのおかげでかなり楽が出来ました。
作業時間もおそらく10分の1以下に短縮できたんじゃないかと思います。

まだ他にもいろいろ関数があるので、これからも活用していきたいと思います。


<関連記事>
【サクラエディタ】マクロをコマンドラインから実行する
【サクラエディタ】PPAマクロを使ってみる
【サクラエディタ】grepをコマンドラインから実行する方法
【サクラエディタ】1から順番に数字を縦に出力するマクロ
【サクラエディタ】矩形選択からの置換


スポンサーリンク