Office Word 宏运用15例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Office Word 宏运用15例
2011年5月15日星期日siqin。
hou@gmail。
com
http://www。
qdnbp。
com/zhanghui/Blogs/office/201002/20100205201330。
Html
宏是什么?VBA是什么?
在微软的Office帮助文档里关于宏、VBA是这样定义的:
宏:可用于自动执行任务的一项或一组操作。
Visual Basic 编辑器:一种环境,用于编写新的Visual Basic for Applications 代码和过程,并编辑已有的代码和过程。
Visual Basic 编辑器包括完整的调试工具集,用于查找代码中的语法、运行时和逻辑问题。
具体的讲以Word 2003为例:
在文档编辑过程中,经常有某项工作要多次重复,这时可以利用Word 的宏功能来使其自动执行,以提高效率。
宏将一系列的Word 命令和指令组合在一起,形成一个命令,以实现任务执行的自动化。
用户可以创建并执行一个宏,以替代人工进行一系列费时而重复的Word 操作。
宏可以完成以下一些工作:
•加速日常编辑和格式设置。
•组合多个命令。
•使对话框中的选项更易于访问。
•使一系列复杂的任务自动执行。
Word 提供了两种创建宏的方法:宏录制器和Visual Basic 编辑器。
宏录制器可帮助用户快速创建宏。
用户可以在Visual Basic 编辑器中打开已录制的宏,修改其中的指令。
也可以直接用Visual Basic 编辑器创建新宏,这时可以输入一些无法录制的指令。
启动宏录制器,并进行一系列操作,即可在Word 中录制宏。
可以将一些经常使用的宏指定到工具栏、菜单或快捷键中,以后运行宏就可以直接单击工具栏按钮或菜单项,或按快捷键,不必使用宏对话框。
录制宏时,可单击工具栏按钮和菜单选项。
但是,宏录制器不能录制文档窗口中的鼠标运动,如果要移动插入点、选定文本,滚动文档,必须用键盘录制这些操作。
那么我们在哪里去找宏和VBA呢?下面是Word 2003中宏和VBA的位置:
Word 2003中的宏和VBA是在“工具”-“宏”下接菜单中.(VBA就是上图中的visual basic 编辑器)
宏命令实现下载文档统一Word阅读样式好多时候,我们会在网上复制、粘贴一些资料,但是在不同的网站,下载的样式、格式都不一样,自己在Word中,还要整理、排版、修正,有没有什么方法让我们复制的网页上的内容一放到Word里,就已经成为我们想要的样式、格式呢?宏命令实现下载文档统一Word阅读样式(图)可以为你解决这个问题,提高你的工作效率。
下面是具体的方法,让我们一起来运用Word中的宏命令来实现我们的目的。
1. 任意打开一篇文挡,用鼠标任选一段文字。
2. 执行“工具→宏→录制新宏”命令,打开如图1所示对话框。
3. 在“录制宏”对话框的“宏名”文本框中输入宏的名称“读前设置”,在“将宏保存在”下拉列表框中选择“所有文档(normal.dot)”,然后单击〔工具栏〕按钮,打开下图所示“自定义”对话框。
4. 在“自定义”对话框中选择“命令”选项卡,在“命令”列表框中将显示输入的宏名。
在该名称上按下鼠标左键将其拖到“常用”工具栏上,这样工具栏上就多了一个〔统一格式〕按钮了。
5. 单击〔关闭〕进入宏的录制过程。
此时,“停止”浮动工具栏将出现在屏幕上,此工具栏上有两个按钮,左边是〔停止〕,右边是〔暂停)。
6. 执行“格式→字体”命令,在打开的“字体”对话框中选择“字体”选项卡,在对话框的“中文字体”下拉列表中选择“宋体”,在“字形”下拉列表中选择“常规”,在“字号”下拉列表中选择“四号”,在“字体颜色”下拉列表中选择“灰度-80%”,单击〔确定〕。
7. 单击“停止”工具栏上的〔停止〕按钮结束录制。
这样,在你复制了网上的资料后,只要再粘贴到Word中,点击工具栏上的“统一格式”,就会发现,现在你的格式、样式都是你喜欢的了,快点自己实现吧!
看一下,我的宏命令应用:
Word宏:实现本机Word打印密码保护有的时候我们都有自己的打印机,用来打印文档。
如果在工作中,有人常常用你的电脑,打印机打印非正常使用的文档,在你不在的时候,如用你的喷墨打印机打印照片,也没有和你打个招呼,几张下来,你的打印机墨水可能就空了,你还要和老板申请新墨盒,老板也许会责怪你,如果你直接和同事说呢,又不大好,也许你也不知道是谁用了你的打印机,现在用Word宏,就可以实现给你的Word打印加上密码保护,除非你的授权,别人是不能用你的电脑打印的。
下面是具体的方法:
1)点击Word菜单中的“工具”-“宏”-“宏”。
2)在出现的对话框中“宏名”中输入“ Fileprint".
3)点击“创建”,在出现的normal模板中粘贴下面的代码:Sub FilePrint()
pass$ = InputBox("请输入打印密码:")
If pass$ = "abcd" Then
Dialogs(wdDialogFilePrint).Show
Else
MsgBox ("密码错误,请与管理人员联系!") End If
End Sub
Sub FilePrintdefault()
pass$ = InputBox("请输入打印密码:")
If pass$ = "abcd" Then
Dialogs(wdDialogFilePrint).Show
Else
MsgBox ("密码错误,请与管理人员联系!") End If
End Sub
Word宏实现记录本机打印历史记录在前面的[Word宏:实现本机Word文档打印密码保护] 中,我们实现了密码保护本机Word打印,下面我们再介绍一下,如何实现记录本机打印历史记录。
操作步骤:
1)打开VBA编辑器。
2)右单击“normal工程”-“插入”-“模块”。
3)将下面的代码粘贴到“normal-模块”中,保存,回到Word文档。
Sub FilePrint()
Dialogs(wdDialogFilePrint).Show
DName = ActiveDocument.Path + "\" +
If ActiveDocument.Path = "" Then DName = "未保存文档"
Tim = Str(Date) + " 日" + Str(Time)
Open "c:\print.txt" For Append As #1
Print #1, "于" + Tim+ " 打印" + DName
Close #1
End Sub
4)打印,打开C:\print.txt,查看结果。
Word宏实现删除Word文档所有超链接好多时候,我们在网上收集资料,常常保留着许多超链接,下面的方法告诉我们如何使用Word宏实现删除Word文档中的所有超链接。
1)打开Word的菜单工具->宏->Visual Basic 编辑器,或直接按快捷键Alt+F11,打开Visual Basic 编辑器。
2)在左侧的工程中右单击你要实现删除超链接的文档工程,“插入”-“模块”。
注:一般我们是设置在normal模板工程中
3)在打开的模块窗口中粘贴下面的代码:
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
4)保存,返回到你的当前文档。
5)测试使用:
打开“工具”-“宏”-"宏命令”,找到刚完成的"RemoveHyperlinks",单击“运行”,就看到效果
了。
这个时候就会看到刚才的超链接已经去掉,测试成功。
Word中英文标点符号互换-VBA源码实现通常我们在使用Word编辑文档时、都会遇到过输入法的切换过程式、最简单的有时我们我们录入汉字、有时又录入一定的英文字母、这样就在不经意间、我们混用了中英文的标点符号、如果一个一个找出来、Word文档不长还可以、如果我们录入的是几千字、几万字、一个一个地找出标点的错误、就不容易了。
对于这种情况、为什么我们不开动脑筋、想出办法?Word里面的宏命令、可以帮我们做这件事情、我们如果一个一个去找、费的时间太多了、让它来处理、没问题、只是几秒钟。
现在让我们一同来学习如何用Word宏来实现Word文档中的中英文标点符号互换。
在这里我们要遇到VBA、就是Visual Basic for Applications、实际就是VB应用程序、理不理解不要紧、只要实现就达到我们高效办公的目标了。
下面是我们要复制的代码:
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("、","。
", ",", ";", ":", "?", "!", "……", "—", "~", "(", ")", "《", "》")
'定义一个英文标点的数组对象
Engl ishInterpunction = 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
有了代码、看看我们还要怎么去做?
1)打开“Visual Basic编辑器”、如下图所示、或用快捷键Alt+F11。
2)打开后在左段的“工程资源管理器”、右单击normal(这个是Word的通用模板)、插入一个新的“模块”、如图所示:
3)在出现的新“模块”代码中粘贴上面给出的代码。
4)单击工具栏上的“保存”按钮。
关闭VBA。
回到你的Word文档。
下面看看我们Word宏实现的“中英文标点符号互换”的效果、我只是简单在文档中输入了中文标点和英文标点:
上面三行是中文的句号、逗号、单撇号。
下面三行是英文的句号、逗号、单撇号。
现在就去调用我们刚刚完成的宏命令。
打开后、找到我们刚刚设置好的宏命令、单击运行。
出现问我们是要转换的对话框、如果想从中文标点转到英文、点“是”、从英文标点转到中文标点、点“否”、最后看看我们的效果吧、真的不错、全变成统一的了。
Test 、。
;’:”<>?、。
、;‘
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
使用方法和[Word宏:Word中英文标点符号互换-VBA源码实现(图)] 中介绍的一样,把代码复制到Visual Biscal编辑器中,再回到Word界面,运行“宏”命令。
操作步骤如下:
1.打开要统一图片大小的Word文档,点击“工具”-“宏”-“Visual Biscal编辑器。
2)插入normal工程“模块”。
3)在“模块”中粘贴上面的代码。
4)保存,返回你要统一图片大小的Word文档。
运行“工具”-“宏”-"宏命令"。
看一下结果,是不是你想要的统一图片大小。
我用的两张图一个大一个小,统一后400*300还是很大,放在两个页面上,上面是25%的缩略图,至此实现了统一大小的目标,如果你想要其它的大小,只需按代码里的说明更改一下长宽数值即可。
按比例缩放的方法和上面的是一样的,只是代码变化一下,过程就不熬述。
VBA代码如下:
Sub setpicsize() '设置图片大小
Dim n '图片个数
Dim picwidth
Dim picheight
On Error Resume Next '忽略错误
For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片
picheight = ActiveDocument.InlineShapes(n).Height
picwidth = ActiveDocument.InlineShapes(n).Width
ActiveDocument.InlineShapes(n).Height = picheight * 1.1 '设置高度为1.1倍
ActiveDocument.InlineShapes(n).Width = picwidth * 1.1 '设置宽度为1.1倍
Next n
For n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片
picheight = ActiveDocument.Shapes(n).Height
picwidth = ActiveDocument.Shapes(n).Width
ActiveDocument.Shapes(n).Height = picheight * 1.1 '设置高度为1.1倍ActiveDocument.Shapes(n).Width = picwidth * 1.1 '设置宽度为1.1倍Next n
End Sub。