Wordでタブラのフレーズにルビを自動的に付ける
Wordでちまちまルビを打ち込むのに疲れたので、半自動化した話。
初心者向けのタブラ教室をしています。
教室用のテキストを作る際に、「Dha」とか「Dhin」とか「TRKT」とか、色んなフレーズを打ち込む訳ですが、アルファベットだけ書いても初心者にとっては即座に理解しづらいことがあります。
限られた時間しかないグループレッスン。フレーズの習得に余計なステップが入るのは避けたいので、Wordのルビ機能を使い、「Dha」は「ダー」、「Dhin」は「ディン」のようにルビを付けるようにしました。
しかし、Microsoft Wordのルビ機能は使いやすいとは言えず、毎回大量のルビを打つのは面倒でした。
そこで、AIを利用して自動的にルビを振るマクロを作成することにしました。
マクロの作成
まず、WordのAI機能「Copilot」に、「Dha、Dhinなど指定した文字列に対して特定のルビを打つ」マクロを作成してもらいました。
しかし、望んだ結果が得られなかったため、X(旧Twitter)の「Glok」を利用してより効率的な方法を模索しました。以下の手順でマクロを導入しました。

より効率的なマクロの改良
このマクロは動作したものの、作業に時間がかかり、文字列の追加も面倒でした。そこで、「Glok」に相談し、以下の改良版マクロを作成しました。
Sub AddRubyToText()
Dim rng As Range
Dim dict As Object
' 検索範囲を設定
Set rng = ActiveDocument.Content
' 文字列とルビの対応を辞書で管理
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "Dha", "ダー"
dict.Add "Dhin", "ディン"
dict.Add "Tin", "ティン"
' 各文字列に対してルビを付ける
Dim key As Variant
For Each key In dict.Keys
With rng.Find
.Text = key
.Forward = True
.Wrap = wdFindStop ' 無限ループを防ぐ
.MatchCase = False ' 大文字小文字を区別しない
Do While .Execute
rng.PhoneticGuide Text:=dict(key), _
Alignment:=wdPhoneticGuideCenter, _
Raise:=0, _
FontSize:=10, _
FontName:="MS Mincho"
rng.Collapse Direction:=wdCollapseEnd ' 次の検索位置へ移動
Loop
End With
' 検索範囲をリセット
rng.Start = ActiveDocument.Content.Start
rng.End = ActiveDocument.Content.End
Next key
End Sub
実行結果とまとめ
このマクロを実行したところ、問題なく動作し、辞書(フレーズ)の追加も比較的容易にできました。
おおむね望んでいた結果となりました。
こんな感じ

ただし、これは私の環境で動作したものであり、AI便りで作ったものです。
そのため、安全性などの部分については十分な検証ができていません。しかし、同じようなルビの問題で悩んでいる人がいるかもしれないと思い、記録として残しておきます。
あとマクロを使うための手順を記しておきます
マクロを使うための設定
- Wordを開く
- 開発タブを有効にする
- ファイル → オプション → リボンのユーザー設定
- 右側のウィンドウで「開発」にチェックを入れる
- クイックアクセスツールバーに「開発」タブが追加され、マクロの作成や使用が可能になる
マクロ導入手順
- Wordを開く
- 開発タブを有効にする(上記の手順)
- マクロを追加する
- 開発タブをクリックし、「マクロ」を選択
- マクロ名を入力し、「作成」をクリック
- VBAエディタが開くので、以下のコードをコピーして貼り付ける
- マクロを実行する
- VBAエディタを閉じ、Wordに戻る
- 開発タブから「マクロ」を選択し、追加したマクロを選んで実行する