【問題】請問如何在Word中把中英對話的中文去除【問題】



贊助商連結


arti
2002-07-18, 06:20 PM
想請問各位高手前輩可否有好的方法(巨集),可以在Word中把中英對話的中文去除,而只留下英文句子,謝謝。:confused:

贊助商連結


leonchou
2002-09-12, 03:55 AM
Sub 去掉中文()
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Execute "^p", Replacewith:="^l", MatchWildcards:=False, Replace:=wdReplaceAll
.Execute "[!A-z 0-9 . ^t^l]", Replacewith:=" ", MatchWildcards:=True, Replace:=wdReplaceAll
.Execute "^l", Replacewith:="^p", MatchWildcards:=False, Replace:=wdReplaceAll
End With
End Sub

這個巨集是用[取代]的方式把中文字改為全形空白.
為什麼可以用取代? 因為Word 尋找/取代 有[萬用字元]的功能可以
自訂靈活的搜尋條件, 如同程式中的 [!A-z 0-9 . ^t^l].
若你不想把中文字取代為全形空白(也就是不預留中文字的位置),
那麼請把中間Replacewith:=" " 的全形空白去掉.

有關萬用字元/特殊字元的:
基本應用, 請參考
http://www.pczone.com.tw/showthread.php?t=31624
http://www.pczone.com.tw/showthread.php?t=62955
詳細說明, 請參閱Word輔助說明.

arti
2002-09-12, 03:27 PM
真是謝謝你阿,偶把他設ㄉ好複雜,偶是利用顏色來錄製,更改刪除,還是你ㄉ簡潔多了,真是高手,有機會還請多教導(以下是我錄製ㄉ,我實在不會設成那ㄇ簡約,我會再研究,謝謝您!)。
Sub 刪中文對話()
'
' 刪中文對話 巨集
' 巨集錄製於 2002/9/12,錄製者 arti
'
Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorLightBlue
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^?"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.WholeStory
Selection.Font.Color = wdColorRed
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorLightBlue
With Selection.Find
.Text = "^$"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorLightBlue
With Selection.Find
.Text = "^#"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorLightBlue
With Selection.Find
.Text = "^p"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorLightBlue
With Selection.Find
.Text = "^w"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorLightBlue
With Selection.Find
.Text = "."
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorLightBlue
With Selection.Find
.Text = "?"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorLightBlue
With Selection.Find
.Text = ","
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorRed
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^?"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

leonchou
2002-09-12, 09:46 PM
錄製的巨集, 其實有很多內容都是預設值或是重複的動作,
實際寫的時候都可以省略. 只要把握重點即可~
但何者是重點? 何者可以省略?? 所以
必需先詳細了解這個功能的用法和要訣,
才能把程式寫的更好...
個人覺得養成詳查VBA輔助說明的習慣
與技巧, 並多加測試以求透徹瞭解,
對活用、精簡程式係很有幫助滴~ :)

arti
2002-09-12, 10:09 PM
最初由 Leon Chou 發表
錄製的巨集, 其實有很多內容都是預設值或是重複的動作,
實際寫的時候都可以省略. 只要把握重點即可~
但何者是重點? 何者可以省略?? 所以
必需先詳細了解這個功能的用法和要訣,
才能把程式寫的更好...
個人覺得?..
說的好,就是粉多動作都是重複。但是想省略、把握重點,卻不簡單,只好在努力了,(偶是工作上有需要用到WORD的巨集)。查過市面上的書,偶覺得在巨集這部分都說的含混其詞,功力也不如您(偶不是在拍馬屁喔!)
高手,如果有好ㄉ書,希望能推介一下,謝謝!:jump2: