彝文翻譯

Fn = FreeFile

Option Base 0

Selection.HomeKey Unit:=wdStory, Extend:=wdMove
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = Src
    .Replacement.Text = Rpl
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .MatchFuzzy = False
    .Execute Replace:=wdReplaceAll  '全部庖代
End With

有位朋侪說他需要把一些 Word 文件檔裡面的 "第一章" 全數改成  "第1章"、 "第一款" 全部改成  "第1款"、......依此類推,最多會到第一百多章、第一百多款 (天成翻譯公司料想多是討論法規的文章吧!)

道理是用Windows記事本 (Notepad) 把 "要被代替" 和 "要用來取代" 的字串寫在 Replace.txt 純文字檔案 (放在 C: 磁碟的根目次) 裡,寫一個 ReplaceText() 函式去呼叫 Word 的 find 功能履行代替。

文件檔裡面有第一章~第一百九十九章、第一款~第一百九十九款需要做取代,所以扣除註解,Replace.txt 會有 199x2 = 398 列對嗎?



' 這個檔案是MassReplace()履行字串代替之用
一章,1章
二章翻譯社2章
三章,3章
四章,4章
五章,5章
六章翻譯社6章
七章,7章
八章,8章
九章,9章
一款翻譯社1款
二款翻譯社2款
三款,3款
四款,4款
五款,5款
六款,6款
七款,7款
八款翻譯社8款
九款,9款
第十章翻譯社第10章
第二十章翻譯社第20章
第三十章,第30章
第四十章,第40章
第五十章翻譯社第50章
第六十章,第60章
第七十章,第70章
第八十章,第80章
第九十章翻譯社第90章
第一百章,第100章
第一百一十章翻譯社第110章
第一百二十章翻譯社第120章
第一百三十章,第130章
第一百四十章翻譯社第140章
第一百五十章翻譯社第150章
第一百六十章,第160章
第一百七十章,第170章
第一百八十章,第180章
第一百九十章,第190章
第十款翻譯社第10款
第二十款翻譯社第20款
第三十款,第30款
第四十款翻譯社第40款
第五十款翻譯社第50款
第六十款,第60款
第七十款,第70款
第八十款,第80款
第九十款,第90款
第一百款翻譯社第100款
第一百一十款,第110款
第一百二十款,第120款
第一百三十款,第130款
第一百四十款,第140款
第一百五十款,第150款
第一百六十款,第160款
第一百七十款翻譯社第170款
第一百八十款翻譯社第180款
第一百九十款,第190款
第十翻譯社第1
第二十,第2
第三十,第3
第四十,第4
第五十,第5
第六十,第6
第七十,第7
第八十翻譯社第8
第九十,第9
第一百零,第10
第一百一十翻譯社第11
第一百二十翻譯社第12
第一百三十,第13
第一百四十,第14
第一百五十,第15
第一百六十,第16
第一百七十,第17
第一百八十,第18
第一百九十,第19


之所以把 Replace.txt 的內容所有列出來,是因為我用了一點小技巧放置這個檔案的內容 (尤其是前後的挨次),所以只用了75列 (也就是要履行75次find\Relpace),就能夠解決第一章~第一百九十九章、第一款~第一百九十九款的庖代。

Function ReplaceText(Src As String, Rpl As String)
'這個函式會在整個檔案裡搜索 Src 字串, 將它代替為 Rpl 字串