標籤:

青空文庫注音轉word注音的方案

青空文庫有它的專門注音格式:

特別|誂《あつら》えの

這樣顯然不便於閱讀,Word中你需要這樣的注音:

但顯然,一個個搞太過麻煩。

於是,就是VBA登場的畫面了。

說到底這種Word注音就是域的應用罷了,只要使用查找替換就能完成。

這裡還是調用了拼音指南來做的。效率不錯,特記載如下:

全てのルビを自動変換するマクロSub RubyAll() With Selection .HomeKey wdStory .TypeText "《》" Do While Ruby Loop If .Type <> wdSelectionIP Then MsgBox "エラーを検出したので中斷します。ルビの親文字を確認してください。", vbCritical, "青空文庫マクロ - ルビ変換" Exit Sub End If .HomeKey wdStory .Find.Execute FindText:="《[!》]" If .Type = wdSelectionIP Then .Find.Execute FindText:="[!《]》" End If If .Type <> wdSelectionIP Then MsgBox "未変換のルビがあります。《 》の対応を確認してください。", vbExclamation, "青空文庫マクロ - ルビ変換" Exit Sub End If .Find.Execute FindText:="《》", ReplaceWith:="", Replace:=wdReplaceAll .Find.Execute FindText:="|", ReplaceWith:="", Replace:=wdReplaceAll MsgBox "ルビの変換が終了しました。", vbInformation, "青空文庫マクロ - ルビ変換" End WithEnd Sub ルビを一つ変換する関數(True: 成功、False: 終了またはエラー)Function Ruby() As Boolean Dim strRuby As String With Selection .Collapse .Find.ClearFormatting .Find.MatchAllWordForms = False .Find.MatchSoundsLike = False .Find.MatchFuzzy = False .Find.MatchWildcards = True .Find.Execute FindText:="《[!^13《》]@》", Forward:=True If .Type <> wdSelectionNormal Then Ruby = False Exit Function End If .MoveStart .MoveEnd Count:=-1 strRuby = .Range.Text .Delete .MoveRight .Find.Execute FindText:="[^13|《》[#]]*《》", Forward:=False, Wrap:=wdFindStop If .Type = wdSelectionNormal Then Select Case .Characters.First Case "|", "《" Case Else .Collapse wdCollapseEnd End Select End If If .Type <> wdSelectionNormal Then .Find.Execute FindText:="[!一-龥豈-鶴々〆〇]*《》" End If If .Type = wdSelectionNormal Then Select Case .Characters.First Case "《", "[", "#", "]" Case Else If .Characters.Count > 3 Then .MoveStart .MoveEnd Count:=-2 .Range.PhoneticGuide Text:=strRuby, Alignment:=wdPhoneticGuideAlignmentOneTwoOne Ruby = True Exit Function End If End If .Collapse wdCollapseEnd .MoveLeft .InsertAfter strRuby Ruby = False End WithEnd Function ルビを一つ変換するマクロ(動作確認用)Sub RubyOne() RubyEnd Sub

推薦閱讀:

調試程序時,設置斷點的原理是什麼?
計算機三級整理
打造全能瀏覽器,30款超實用油猴腳本推薦(下)
原碼、反碼與補碼
VB6.0目前到底處於什麼樣的位置?個人使用已經超過10年,基本上99%的應用場景都可滿足,為何還處於淘汰邊緣?

TAG:計算機 | 日語 |