Word宏命令集

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Word宏命令集

1、Word宏实现删除Word文档中的所有超链接,打开Word的菜单工具->宏->Visual Basic 编辑器,或直接按快捷键Alt+F11,打开Visual Basic 编辑器,“插入”-“模块”。

代码:

Sub RemoveHyperlinks()

Dim oField As Field

For Each oField In ActiveDocument.Fields

If oField.Type = wdFieldHyperlink Then

oField.Unlink

End If

Next

Set oField = Nothing

End Sub

2、Word中的图片批量统一大小及同比例缩放

有些时候,我们用Word来做一些图文混排的文档,需要正规的样式,例如图片大小一致。下面的方法就是告诉我们如何来实现很多的图片统一大小,“插入”-“模块”。

代码:

Sub setpicsize() '设置图片大小

Dim n '图片个数

On Error Resume Next '忽略错误

For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片

ActiveDocument.InlineShapes(n).Height = 400 '设置图片高度为400px

ActiveDocument.InlineShapes(n).Width = 300 '设置图片宽度300px

Next n

For n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片

ActiveDocument.Shapes(n).Height = 400 '设置图片高度为400px

ActiveDocument.Shapes(n).Width = 300 '设置图片宽度300px

Next n

End Sub

按比例缩放的方法:

Sub setpicsize() '设置图片大小

Dim n '图片个数

On Error Resume Next '忽略错误

For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片

ActiveDocument.InlineShapes(n).Height = 400 '设置图片高度为400px

ActiveDocument.InlineShapes(n).Width = 300 '设置图片宽度300px

Next n

For n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片

ActiveDocument.Shapes(n).Height = 400 '设置图片高度为400px

ActiveDocument.Shapes(n).Width = 300 '设置图片宽度300px

Next n

End Sub

3、Word中英文标点符号互换-VBA源码实现

打开“Visual Basic编辑器”或用快捷键Alt+F11,插入一个新的“模块”。

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("、","。", ",", ";", ":", "?", "!", "……", "—", "~", "(", ")", "《", "》")

'定义一个英文标点的数组对象

EnglishInter punction = 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 '不限定查找格式

相关文档
最新文档