WORD中批量转换中英文标点符号
飞翔的翅膀-音乐广播稿
WORD中批量转换中英文标点符号
先记下一个东西:全角情况下,WOR
D中的空格为方格形状;半角情况
下,空格为小黑点形状。
打开word,工具宏编辑器在主
窗体复制以下内容后粘
贴,保存.关闭编辑器,在工具宏宏里调用.
Sub
ToggleInterpunction()'中英文标点互换
Dim
ChineseInterpunction() As Variant,
EnglishInterpunction() As Variant
Dim
myArray1() As Variant, myArray2() As Variant,
strFind As String, strRep As
String
Dim
msgResult As VbMsgBoxResult, N As Byte
'定义一个中文标点的数组对象
ChineseInterpunction =
Array(、。,;:?!
~()《》
'定义一个英文标点的数组对象
EnglishInterpunction =
Array(-
'提示用户交互的MSGBOX对话框
msgResult = M
sgBox(您想中英标点互换吗?按Y将中文标点转为英文标点,按
N将英文标点转为中文标点!Select Case msgResult
Case vbCancel
Exit Sub '如果用户选择了取消按钮,则退出程序运行
Case vbYes
'如果用户选择了YES,则将中文标点转换为英文标点
1 3
myArray1 = ChineseInterpunction
myArray2 = EnglishInterpunction
strFind =
strRep =
Case vbNo
'如果用户选择了NO,则将英文标点转换为中文标点
myArray1 =
EnglishInterpunction
myArray2 =
ChineseInterpunction
strFind =
strRep =
1”
End Select
Updating = False '关闭屏幕更新
For N = 0 To UBound(ChineseInterpunction)
'从数组的下标到上标间作一个循
环With
.ClearFormatting
'不限定查找格式
.MatchWildcards = False '不使用通配符
'查找相应的英文标点,替换为对应的中文标点
.Execute
findtext:=myArray1(N), replacewith:=myArray2(N),
Replace:=wdReplaceAllEnd With
Next
With
.ClearFormatting '不限定查找格式
.MatchWildcards = True '使用通配符
2 3
.Execute findtext:=strFind,
replacewith:=strRep, Replace:=wdReplaceAll
End
With
Updating = True '恢复屏幕更新
End Sub
3 3