ルビを少し打つくらいなら良いのですが、割と大量に打たないとダメになったので、SAKURAエディターのマクロを書いて半自動化してみました。

まず、やりたいこと
1.選択範囲の文字をルビタグに変換
2.ルビを打つ際の効率化
の2点

↑選択してマクロを実行↓

タグに変換され、●文字部分に”ひらがな”を打ち込んでいきます。

selStr = GetSelectedString();
var buf = "";
if (selStr.length) {
	for (var i=0; i<selStr.length; ++i) {
		selStr.charAt(i);
		buf = buf + selStr.charAt(i)+'<rp>(</rp><rt>●</rt><rp>)</rp>';
	}
	buf = '<ruby>'+buf+'</ruby>';
	InsText(buf);
}

↑こちらが選択文字をタグに変換するマクロ

次にやりたいのが、●文字部分にカーソルを移動させたい。
毎回マウスをもって移動したり、矢印キーで移動させるのは面倒くさい。

カーソルを行の先頭に持っていき、登録したマクロをキーの組み合わせで実行させます。今回は一時的に SHIFT+CTRL+→ に登録して実行

カーソルが右に移動していき、●の文字が選択された状態で止まります。

これを繰り返して大量の文字を打ち込んでいきます。

var buf = "";
while (buf != "\r\n") {
	Right();
	Right_Sel();
	buf = GetSelectedString();
	if (buf == "●") break;
}

↑こちらが移動して、●を見つけたら選択して止まってくれるコード
注意点はこのプログラムはループしており、改行コードが\r\nだった場合に処理が停止するようになっています。
改行コードが\r\nじゃない場合は無限ループしちゃうので、下記のような上限を設定しておいた方が安全です。

var buf = "";
var i = 0;
while (buf != "\r\n") {
	Right();
	Right_Sel();
	buf = GetSelectedString();
	if (buf == "●") break;
	i = i + 1;
	if (i == 300) break;
}

●文字が300文字経っても出てこない場合は処理が停止します。

ほんの数分考えれば、こんなに効率的なものが構築できるSAKURAエディタはやっぱり優秀ですね。

もっと時間をかければより便利にできるのかもしれないですが、仕事になると納期の問題もあり、それを作る時間が勿体ないので、地道にやるのか、少し手を加えて効率化するのかの2択になるわけです。今回は結構な時間がリターンとして戻ってきました。

また何か思いついたらブログに書いていきます。