Word中批量进行中英文标点的转换

来源:互联网 发布:小米手机 网络连接失败 编辑:程序博客网 时间:2024/05/16 16:24

打开word,"工具"→"宏"→"Visual Basic 编辑器",在主窗体复制以下内容后粘贴,保存.关闭编辑器,在"工具"→"宏"→"宏"里调用.

Sub ToggleInterpunction()'中英文标点互换Dim ChineseInterpunction() As Variant, EnglishInterpunction() As VariantDim myArray1() As Variant, myArray2() As Variant, strFind As String, strRep As StringDim msgResult As VbMsgBoxResult, N As Byte'定义一个中文标点的数组对象ChineseInterpunction = Array("。", ",", ";", ":", "?", "!", "……", "—", "~", "(", ")", "《", "》")'定义一个英文标点的数组对象EnglishInterpunction = Array(".", ",", ";", ":", "?", "!", "…", "-", "~", "(", ")", "<", ">")'提示用户交互的MSGBOX对话框msgResult = MsgBox("您想中英标点互换吗?按Y将中文标点转为英文标点,按N将英文标点转为中文标点!", vbYesNoCancel)Select Case msgResultCase vbCancelExit Sub '如果用户选择了取消按钮,则退出程序运行Case vbYes '如果用户选择了YES,则将中文标点转换为英文标点myArray1 = ChineseInterpunctionmyArray2 = EnglishInterpunctionstrFind = "“(*)”"strRep = """\1"""Case vbNo '如果用户选择了NO,则将英文标点转换为中文标点myArray1 = EnglishInterpunctionmyArray2 = ChineseInterpunctionstrFind = """(*)"""strRep = "“\1”"End SelectApplication.ScreenUpdating = False '关闭屏幕更新For N = 0 To UBound(ChineseInterpunction) '从数组的下标到上标间作一个循环With ActiveDocument.Content.Find.ClearFormatting '不限定查找格式.MatchWildcards = False '不使用通配符'查找相应的英文标点,替换为对应的中文标点.Execute findtext:=myArray1(N), replacewith:=myArray2(N), Replace:=wdReplaceAllEnd WithNextWith ActiveDocument.Content.Find.ClearFormatting '不限定查找格式.MatchWildcards = True '使用通配符.Execute findtext:=strFind, replacewith:=strRep, Replace:=wdReplaceAllEnd WithApplication.ScreenUpdating = True '恢复屏幕更新End Sub


原创粉丝点击