Sub 选择所有表格()
Dim tempTable As Table
Application.ScreenUpdating = False
'判断文档是否被保护
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
MsgBox "文档已保护,此时不能选中多个表格!"
Exit Sub
End If
'删除所有可编辑的区域
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
'添加可编辑区域
For Each tempTable In ActiveDocument.Tables
tempTable.Range.Editors.Add wdEditorEveryone
Next
'选中所有可编辑区域
ActiveDocument.SelectAllEditableRanges wdEditorEveryone
'删除所有可编辑的区域
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
Application.ScreenUpdating = True
End Sub
2、利用给出的宏脚本完成对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 =MsgBox("您正在使用中英标点互换功能,按Y将中文标点转为英文标点,按N将英文标点转为中文标点!退出请点击右上角关闭按钮", vbYesNoCancel)
Select Case msgResult
Case vbCancel
Exit Sub '如果用户选择了取消按钮,则退出程序运行
Case vbYes '如果用户选择了YES,则将中文标点转换为英文标点
myArray1 = ChineseInterpunction
myArray2 = EnglishInterpunction
strFind ="“(*)”"
strRep ="""\1"""
Case vbNo '如果用户选择了NO,则将英文标点转换为中文标点
myArray1 = EnglishInterpunction
myArray2 = ChineseInterpunction
strFind ="""(*)"""
strRep ="“\1”"
End Select
Application.ScreenUpdating = False '关闭屏幕更新
For N =0 To UBound(ChineseInterpunction) '从数组的下标到上标间作一个循环
With ActiveDocument.Content.Find
.ClearFormatting '不限定查找格式
.MatchWildcards = False '不使用通配符
'查找相应的英文标点,替换为对应的中文标点
.Execute findtext:=myArray1(N), replacewith:=myArray2(N), Replace:=wdReplaceAll
End With
Next
With ActiveDocument.Content.Find
.ClearFormatting '不限定查找格式
.MatchWildcards = True '使用通配符
.Execute findtext:=strFind, replacewith:=strRep, Replace:=wdReplaceAll
End With
Application.ScreenUpdating = True '恢复屏幕更新
End Sub