電子出版小技集 013

文字を1対1で変換する 2

マクロにチャレンジ

秀丸\上級\マクロ

 前回は秀丸の選択文字変換機能を使って全角数字を半角に変換するキーボードマクロを紹介しました。今回は一歩進んで複数の置換セットを実行するマクロに挑戦します。

 例題として丸付き数字を開くマクロを紹介します。単純に書くなら以下のマクロでOKです。

丸付き数字を開くマクロ
	replaceall "@","1";
	replaceall "A","2";
	replaceall "B","3";
	replaceall "C","4";
	replaceall "D","5";
	replaceall "E","6";
	replaceall "F","7";
	replaceall "G","8";
	replaceall "H","9";
	replaceall "I","10";
	replaceall "J","11";
	replaceall "K","12";
	replaceall "L","13";
	replaceall "M","14";
	replaceall "N","15";
	replaceall "O","16";
	replaceall "P","17";
	replaceall "Q","18";
	replaceall "R","19";
	replaceall "S","20";

replaceallは全置換のコマンドです。

 
replaceall 検索文字列,置換文字列;

 要するに行いたい置換を並べているだけです。置換はマクロの上の方から順番に行われます。このマクロにWindows固有文字のTUV_`aなどの置換も追加しておくと良いかも知れません。

Windows固有文字を開くマクロ
	replaceall "T","I";
	replaceall "U","II";
	replaceall "V","III";
	replaceall "_","ミリ";
	replaceall "`","キロ";
	replaceall "a","センチ";
	…

といった具合ですね。

HTMLでは < を &lt; > を &gt; & を &amp; と書くことはご存じですね。通常の文章中のこれらの文字を変換するには3回の置換が必要で面倒です。これも次のマクロを用意すればOKです。

HTMLのメタ文字entity変換
	replaceall "<","&lt;";
	replaceall ">","&gt;";
	replaceall "&","&amp;";

 replaceall は正規表現も使えます。その場合はregularというオプションを付けます。次の置換は行末の空白の連続を削除します。

 
	replaceall "[  \t]+$", "", regular;

 確認付き置換にしたければaskというオプションが可能です。その他の使い方は秀丸エディタのメニューから[マクロ][マクロヘルプ]マクロのヘルプを開き[目次][検索系文]を見てください。

 よく使う定型的な処理ならこういった単純なマクロを用意しておけば良いのですが、場合に応じて複数の置換を行いたいといった場合はちょっと工夫が必要です。

 またファイルの一部分だけ置換をかけたいということも多いでしょう。そんな場合はどうしたら良いか、それはまた後日。


BACKNewsletterのTopに戻る
Homeトップページに戻る