| 
    
     |  | 大変、愚直な算法ですが、 下のマクロで良ければ・・・
 
 Wordのルビは、フィールドの挿入という形になっていますので、
 とにかく、フィールドとなっている部分を
 「青空文庫形式のフリガナ」に
 無理やり置き換える処理をするようにしました。
 
 ルビ以外の挿入されたフィールド(日付表示とか分数表示とか)があると、
 使用不可。
 
 Sub myFieldToAozoraFurigana()
 Dim myField As Field
 Dim myText As String
 Dim myCount As Integer
 '
 If ActiveDocument.Fields.Count <= 0 Then
 MsgBox "フィールドなし。"
 Exit Sub
 End If
 '
 Selection.WholeStory
 Selection.copy
 Selection.Collapse wdCollapseStart
 Documents.Add DocumentType:=wdNewBlankDocument
 Selection.PasteAndFormat (wdPasteDefault)
 Selection.HomeKey Unit:=wdStory
 '
 For Each myField In ActiveDocument.Fields
 myField.Select
 myField.ShowCodes = True
 myText = Selection.Range.Text
 myCount = InStrRev(myText, "(")
 myText = Mid(myText, myCount)
 myCount = Len(myText)
 myText = Left(myText, myCount - 2)
 myCount = InStr(myText, ",")
 myText = "|" & Mid(myText, myCount + 1) & Left(myText, myCount - 1)
 myText = Replace(myText, "(", "《")
 myText = Replace(myText, ")", "》")
 myField.Delete
 Selection.InsertBefore (myText)
 Next myField
 '
 Selection.Collapse wdCollapseEnd
 Selection.HomeKey Unit:=wdStory
 '
 With Dialogs(wdDialogFileSaveAs)
 .Show
 End With
 End Sub
 
 |  |