ルビ一括変換 (Word VBA)
(LZHの圧縮ファイルをダウンロードするとよい。)
《Ruby_Auto.bas》Wordの文章中、選択した段落中の「漢字(よみがな)」を一括してワード拡張書式に変換する。(具体例は下図を参照。丸括弧(パーレン)は全角を使う。)アイディアから工夫したマクロスクリプトである。
《Ruby_Auto_2.bas》Wordの文章中、選択した段落中の「漢字(よみがな)」の「(よみがな)」部分を6ポイントに変換する。(具体例は下図を参照。丸括弧(パーレン)は全角を使う。)上のスクリプトと同じく、正規表現により対象を捉えるが、フィールドコードを挿入するのでなくWordによる書式設定を行う。応用範囲の広いスクリプトになるはずだ。
ワードからAlt + F11 で Visual Basic Editorを起動して、このファイルを「インポート」する。正規表現を使っているものについては、そのまま実行するとエラーになる。VB Editorの「ツール」−「参照設定」メニューによって表示されるライブラリ一覧から「Microsoft VBScript Regular Expressions 5.5」を選び、チェックを入れる。
【更新履歴】
◇《Ruby_Auto.bas》ルビを挿入するプロパティにはPhoneticGuideがあるが、初めRangeオブジェクトをうまく作れず、拡張ルビ書式のフィールドコードによって処理するようにした。又、漢字+(よみがな)という組み合わせで拾わなければならないので、Findメソッドでは漢字と読みがなとを分けて処理することが難しいように思われた。正規表現で拾うと比較的簡単だが、ルビ変換をするごとに当然ながらFirstIndexの位置がずれてしまう。その組み合わせをうまく作るのに作成者は手間取った。(2008.5.25)◇《Ruby_Auto_2.bas》見た目の結果は《Ruby_Auto.bas》より地味だが、正規表現によって捕捉した文字列を対象として書式設定等の操作を行う、という形のスクリプトを作りたいと思いながらなかなかできなかった。文字列を捉まえることができれば、テキスト加工の応用範囲はずいぶん広がるにちがいない。また、行間を狭く設定しなければならない場合、ルビの表示はむしろこちらの方式に頼ることになるだろう。(6.7)◇Type2(《Ruby_Auto_2.bas》)の方を少し修正した。(6.8)◇現在、ルビを自動挿入するプロパティPhoneticGuideはVBAでは使えず、ルビ用フィールドはMS-Wordから無くなって、PhoneticGuideだけになったようである。つまり、自動化は難しいようだ。「漢文エディタ」に導入しようとしたができなかった。(2010.9.23)