Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


783 / 886 ←次へ | 前へ→

【108】Re:Wordのルビを青空文庫形式のふりがなに...
回答  H. C. Shinopy  - 04/6/19(土) 23:18 -

引用なし
パスワード
   大変、愚直な算法ですが、
下のマクロで良ければ・・・

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

1,960 hits

【106】Wordのルビを青空文庫形式のふりがなに... きの 04/6/16(水) 2:55 質問
【108】Re:Wordのルビを青空文庫形式のふりがなに... H. C. Shinopy 04/6/19(土) 23:18 回答
【110】Re:Wordのルビを青空文庫形式のふりがなに... きの 04/6/21(月) 10:30 お礼

783 / 886 ←次へ | 前へ→
ページ:  ┃  記事番号:
207143
(SS)C-BOARD v3.8 is Free