ルビ編集用マクロ
サクラエディタでのルビ振り用マクロの紹介です。
小説執筆に使用しているツールとして、最近ではGitHubにも標準で対応している高機能無料エディタ「Atom」の使用者も増えているとは思うのだけれども……
私もAtomへの移行も考えもしたのだけど、仕事でAtomを使用している身としては趣味の小説執筆は別のエディタを使いたいということから、今でもサクラエディタを使用しているわけで。
そこで、今回はこのサクラエディタで小説家になろうの「ルビ編集」に対応させたマクロを紹介しようと思う。
作ったのはつい最近。まあ、最近小説執筆という新しいジャンルの趣味を開拓したので、そのための機能として作ろうと思い立ったわけで。
「小説家になろう」の「ルビ」の書き方はどうやっているのかというと、まあヘルプを見ていただくとわかるのだけれども、ルビを振るとどうなるのかを敢えて紹介するとこんな感じになる。
ルビを振りたい文字列
これ、まともに毎回書こうと思ったら……地味に面倒くさい感じでもあったので、マクロでルビを振ろうじゃないかということになり――。
では、さっそくそのマクロのプログラムを紹介していこうと思う。
▼▼▼ ここからプログラム <ToWriteRubyString,js> ▼▼▼
//**********************************************************
//サクラエディタ用 小説家になろう ルビ振りマクロ
//
//製作者:郡山浩輔
//Copyright 郡山浩輔(C)2019
//**********************************************************
//基本ショートカットキー:Shift+Ctrl+R
var strString = ""; // ルビを振りたい文字列
var strRuby = ""; // ルビ文字列
var flgSelected = 0; // 文字列選択されているかのフラグ
// ①
// 文字列が選択されていれば、
// その文字列を「ルビを振りたい文字列」として取得
if (Editor.IsTextSelected != 0) {
strString = Editor.GetSelectedString(0);
if (strString.length > 0) flgSelected = 1;
}
// ②
// 「ルビを振りたい文字列」が取得できていない場合
// エディタのInputBoxダイアログで文字列を取得
if (flgSelected == 0) {
strString = Editor.InputBox("ルビを振る文字列 = ", "");
}
// ③
// 「ルビ文字列」をエディタのInputBoxダイアログで取得する
// ※ルビは10文字まで
strRuby = Editor.InputBox("ルビ文字列(10文字まで) = ", "", 10);
// ④
// ルビ設定文字列を挿入
if (strString.length > 0 && strRuby.length > 0) {
Editor.InsText("|" + strString + "《" + strRuby + "》");
}
▲▲▲ ここまでプログラム <ToWriteRubyString.js> ▲▲▲
このマクロの基本的なショートカットキーは、私は「Shift + Ctrl + R」で行っているけれども、このマクロをご使用される方は、ご自由に設定していただけると良いかと。
まあ、このマクロをどう使うかは、サクラエディタのヘルプ等を見てほしいところではあるのだけど、軽くプログラムの説明をして終わりとしようと思う。
① まず最初に、エディタで文字列が選択されているかどうかをチェックして、文字列が選択されていれば、選択された文字列を「ルビを振りたい文字列」として取得している。
② ①とは逆にエディタで文字列が選択されていない場合は、サクラエディアが持つ「InputBox」という文字入力ダイアログ(小さな窓)から「ルビを振りたい文字列」をユーザー入力+OKボタンクリックにて取得している。
このとき、キャンセルボタンがクリックされた場合は、入力ボックスに文字列が入力されていたとしても、「ルビを振りたい文字列」としては取得はしないので注意。
③ 今度は、振る「ルビ文字列」を、こちらもサクラエディアが持つ文字入力ダイアログからユーザー入力+OKボタンクリックにて取得している。
また、この時、キャンセルボタンがクリックされたときには、②と同じく「ルビ文字列」としては取得しないので注意。
④ ここで①~③で取得した「ルビを振りたい文字列」と「ルビ文字列」を小説家になろうのルビ書式に生成してエディタのカーソルがある部分に挿入している。また、マクロを実行する際に文字列を選択していた場合は、選択していた文字にルビ書式が上書きされることになる。
因みに、①~③で「ルビを振りたい文字列」と「ルビ文字列」のどちらかが空文字である(取得されていない)場合は、ルビ書式挿入は行われないようにしている。
最後に今回のマクロはJavaScriptというプログラム言語で書いているのだけど、
このマクロをVBScriptというプログラム言語で移植したも、まったく同じことができる。
VBScriptの方が見やすいよという人は、ぜひVBScriptに移植して使ってもらえればと思う。
このマクロを少し修正すれば、傍点用のマクロも簡単に作れる。
次回は、その傍点用マクロも紹介していこうと思う。
「▼▼▼ ここからプログラム ▼▼▼」~「▲▲▲ ここまでプログラム ▲▲▲」の部分をコピペして使用してみてください。
コピペのペースト先はサクラエディタを利用して保存した方が何かと都合がよいです。
理由としては、今のWindowsはUnicodeを使っているため、BOMという特殊なヘッダーが邪魔をして文字化けを誘発してしまう恐れがあるからです。
文字コードに詳しい方、そんなのどうにでもなるわ!ぼけぇ!という方は、ご自身のやり方でどうぞ。