【Word】pixiv形式のルビをWordルビに変換する(傍点対応)
pixiv形式で書かれたルビをWordルに変換し、なおかつ [[rb:傍点 > 、、]] という「、(読点)」で傍点の代用をしている場合に対して、置換を行うためのVBAを配布します。
動作確認環境はMicrosoft 365ですが、Office 2019くらいまでは問題なく動くはずです。
(※動作確認については時間がないので、後日改めて手持ちの2019でも行う予定です)
1. ダウンロード
ダウンロードは以下からお願いします。
※2024/03/04、中点から傍点(ゴマ、黒丸)への対応も追加しました。
2. 使用方法
2-1. インポート方法
Wordを開きます。開いたら Altキー + F11 でVBAエディタを開きます。
VBAエディタから「ファイル > ファイルのインポート」でダウンロードファイル内にある「TextReplacement.bas」をインポートします。
次に、同じくVBAエディタの「ツール > 参照設定」を開き、「Microsoft VBScript Regular Expressions 5.5」を探し、チェックを入れてください。
これにより正規表現が利用できるようになります。
2-2. リボンに追加
マクロを実行するには Altキー + F8 で実行したいマクロを選択するのが基本です。
これをリボンに直接マクロを追加し、呼び出すように設定します。
リボン上で右クリックを行い、「リボンのユーザー設定」を開きます。
右側の「リボンのユーザー設定」に「新しいタブ」を追加します。
わかりやすいように「名前の変更」で「置換VBA」とでもしておきます。新しいタブが追加された時点で「新しいグループ」も自動的に追加されています。このグループ名もわかりやすく「pixiv形式 → Word」に変更します。
次に、左側の「コマンドの選択」のプルダウンメニューから「マクロ」を選択します。「マクロ」には以下の4つのマクロがあるはずです。
Normal.TextReplacement.AddBouten(中点→ゴマ傍点変換用)
Normal.TextReplacement.AddOverComma(読点→ゴマ変換用)
Normal.TextReplacement.AddOverSolidCircle(中点→黒丸変換用)
Normal.TextReplacement.ConvertToRubyText(ルビ変換用)
これら二つのマクロを、先に設定した「pixiv形式 → Word」に「追加」します。また、これらもそのままではなんのためのマクロなのかわかりにくいので、上を参考に名前を変更します。
以上でマクロがリボンに追加されたはずです。
更に、マクロ有効テンプレート(.dotm)として保存すれば、ファイルに関係なくアドインとしてインストールされます。
併せてご利用ください。
2-3. 使用方法
このマクロにはいくつかの注意点があります。
必ず傍点の置換から行う。
文字列に対する数制限があるため、置換対象が多すぎたり長すぎたりする場合はエラーが出る場合があります。
[[rb:漢字 > ふりがな]] と [[rb:傍点 > 、、]] が一段落内に混在する場合、傍点の置換で余計な部分にまで傍点を振ってしまうことがあるため、混在する部分については狭い選択範囲内で置換を行う必要性がある。
修正後は発生していないが確約まではできない。
上述のようなパターンが懸念される場合、一段落の中に置換したいルビが一つしかないのならそこを先に置換し、その後、広範囲での傍点置換などで対応すれば回避可能。
以上を踏まえた上で、まず置換したいテキストを適当に選択します。
後はリボンに追加したマクロをクリックするだけで実行されるはずです。
置換できるパターンは以下のようになります。
ルビの設定は以下のとおりです。
配置:均等割り付け 2
オフセット:0pt
サイズ:4.5pt
フォントについては特に指定していないため、指定範囲内の文字列と同じフォントが使用が使用されます。
もし、フォントを指定する場合は Alt + F11 でエディタを開き、 ConvertToRubyText() の39行目にある
Raise:=0, FontSize:=4.5
を以下のように変更してみてください。
Raise:=0, FontSize:=4.5, FontName:="MS Gothic"
FontName:= でフォントを指定します。
また、Raise:= でオフセットを。FontSize:= でフォントサイズを指定しています。
テストとして置換前の段階で4.5万字を超える文書を全文選択で一括置換しましたが、 [[rb:傍点 > 、、]] → [[rb:漢字 > ふりがな]] の順で置換する限り、検索結果としては漏れやエラーはありませんでした。
自分用に作ったものですが、原稿のお手伝いになれば幸いです。