close

日文口譯翻譯社

Fn = FreeFile



' 這個檔案是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

Open "C:\Replace.txt" For Input As #Fn '開啟 Replace.txt 檔
Application.ScreenUpdating = False  '畫面暫停更新
While Not EOF(Fn) 
    Line Input #Fn, InputStr '從檔案讀出一列,
    If Len(InputStr) > 0 And Mid(InputStr, 1, 1) <> "'" Then '若第一個字元是'就跳過此列
        arrStr = Split(InputStr, "翻譯社")  '把讀入的文字列依逗號分成兩個字串,
                                                 '置於 arrStr 陣列裡
        Call ReplaceText(arrStr(0), arrStr(1)) '
    End If
Wend
Application.ScreenUpdating = True  '畫面恢復更新
Close #Fn

Replace.txt 現實的內容以下:

End Sub

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

Function ReplaceText(Src As String翻譯社 Rpl As String)
'這個函式會在全部檔案裡搜索 Src 字串, 將它庖代為 Rpl 字串

Replace.txt 的每列裡面以逗號 (閣下不要空格) 來分隔要尋覓的字串與要用來庖代的字串。第一格若是 ' 示意這一列是註解,程式會把這一列略過。

End Function

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

而在利用者要履行的 MassReplace() 副程式裡,是由 Replace.txt 每讀出一列,就把 "要被取代" 和 "要用來庖代" 的字串傳給 ReplaceText() 函式去履行。

他說曾想過用 Word 的搜索\庖代,然則因為文章裡會有一些其他的中文數字,例如 "十分完整" 之類的,所以弗成以直接用 "1~199" 庖代 "一~一百九十九"翻譯所以需用 "第1章"~"第199章" 庖代 "第一章"~"第一百九十九章"翻譯可是手動操作真會累死,檔案還不只一個......(似乎愚公移山 ^_^ )

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款"、......依此類推,最多會到第一百多章、第一百多款 (天成翻譯公司料想多是評論辯論法規的文章吧!)

不信翻譯公司就嘗嘗吧!

Option Base 0


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

於是我寫了底下的程式,給他放在 Normal.dot  (的插入模組) 裡利用:

Sub MassReplace()
Dim arrStr() As String翻譯社 InputStr As String



以下內文出自: http://blog.udn.com/WayCheng/2731101有關各國語文翻譯公證的問題歡迎諮詢天成翻譯公司02-77260931
arrow
arrow
    文章標籤
    翻譯社
    全站熱搜
    創作者介紹
    創作者 chavezw15462 的頭像
    chavezw15462

    chavezw15462@outlook.com

    chavezw15462 發表在 痞客邦 留言(0) 人氣()