Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Word VBA技术:创建、打开或关闭文档时自动运行宏

Word VBA技术:创建、打开或关闭文档时自动运行宏

作者头像
fanjy
发布于 2023-02-24 12:42:16
发布于 2023-02-24 12:42:16
3.8K0
举报
文章被收录于专栏:完美Excel完美Excel

标签:Word VBA

有多种方法可以使我们在创建、打开或关闭Word文档时自动运行宏。

方法1:使用文档事件

在Word中,按Alt+F11组合键打开VBE,然后在“工程 – Project”窗口中,双击“Microsoft Word对象”,再双击“ThisDocument”。此时,在右侧代码窗口顶部,会看到两个列表框。单击左侧下拉列表,将其从“(通用)”更改为“Document”,VBA将自动创建一个名为Document_New()的过程。如果单击右侧下拉列表,将看到很多可供选择的事件,其中包含三个事件:New、Open和Close,可以从列表中选择“Close”或“Open”以插入Document_Close()或Document_Open()过程,或者可直接在代码窗口输入过程名。

这样,每当创建基于该模板的文档时,将运行Document_New()过程;每当打开基于该模板的文档时,会运行Document_Open()过程;每当关闭基于该模板的文档时,会运行Document_Close()过程。

注意,这些过程不是全局的,只有在创建、打开或关闭基于模板的文档时才会触发这些过程。

方法2:使用自动宏

实现相同目标的另一种方法是插入一个标准模块(单击VBE工具栏“插入-模块”),并编写名为AutoNew()、AutoOpen()或AutoClose()的宏。如果存储在除Normal.dotm以外的任何模板中,这些事件的行为方式与Document事件相同,当创建、打开或关闭附加到模板的文档时,它们将被触发。

然而,如果存储在Normal.dotm中,则它们将全局运行,换句话说,当创建、打开或关闭任何文档时,它们都将被触发。与存储在Normal.dotm中的Document_Open过程形成对比,后者仅在打开基于Normal.dotm的文档时执行。

不过,存储在加载项(存储在Word启动目录中的.dotm文件)中的AutoNew、AutoOpen和AutoClose宏将无法全局运行。事实上,在加载项中存储AutoNew、AutoOpen或AutoClose宏是没有意义的,因为不会(或不应该)将文档基于加载项。

方法3:使用应用程序事件

如果希望在打开任何文档时触发宏,而不管文档附加到哪个模板,如上所述,最简单的方法是编写一个AutoOpen宏并将其存储在Normal.dotm中。但是,在Normal.dotm中存储宏存在一些问题,因此如果想避免这种情况,最好使用应用程序事件。存储在全局加载项中的应用程序事件确实具有全局行为。一些应用程序事件与文档相关。

可以使用Application对象的DocumentOpen、NewDocument和DocumentBeforeClose事件,将它们存储在加载项中的工作方式与在Normal.dotm中存储自动宏类似。

有兴趣的朋友可以实践操作以加深理解。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
钓鱼技术
为了保护计算机不受office病毒侵害,微软设计了一个收保护视图,将所有可疑的office文件以只读方式打开,在该模式下多数编辑功能被禁用。文件呗以受保护视图打开的情况有如下几种
ConsT27
2022/02/11
3.4K0
钓鱼技术
宏病毒还有不了解的么
按照常规套路我们依旧从原理剖析一下。首先,什么是宏?是一种可在其更广泛的环境中工作的编程语言编写的,可以理解成一个小程序,能在较大的程序中运行,可以代表用户自动执行任务,通常会指一项复杂或比较耗时的任务,它还在很多MMORPG(大型多人在线角色扮演游戏)社区和某些搜索引擎优化软件中使用
物联网安全小编
2020/07/01
3.3K0
宏病毒还有不了解的么
在Excel中使用VBA来自动化Word
本文演示的例子是,在Excel中使用VBA打开新的Word文档,复制Excel图表并粘贴到这个文档中。同时,介绍了一种你不熟悉Word VBA的情形下怎样获取相关的代码并在Excel中使用的方法。
fanjy
2023/08/30
1.5K0
在Excel中使用VBA来自动化Word
红队 | CS加载宏上线初探
邮件钓鱼通常出现在APT攻击里面,但是在日常生活中我们的邮箱也会经常出现一些钓鱼邮件,为了更好的了解原理,我在本地探索了一下宏上线钓鱼邮件,分享出来供师傅们交流。
HACK学习
2021/05/14
3.1K0
VBA实战技巧32:安装Excel加载宏
我们知道,有多种方法可以进入“Excel加载宏”对话框。最简单的就是,单击功能区“开发工具”选项卡“加载项”组中的“Excel加载项”,即可打开如下图1所示的的“加载宏”对话框。
fanjy
2021/08/31
6.9K0
VBA实战技巧32:安装Excel加载宏
运行Excel VBA的15种方法2
可以自定义功能区,将宏代码关联到功能区选项卡组中。这种方法尤其适合于组织布置许多自定义宏的运行。
fanjy
2023/08/30
9610
运行Excel VBA的15种方法2
VBA专题06-5:利用Excel中的数据自动化构建Word文档—Excel与Word整合示例2
使用书签,可以方便地替换书签处的文本。例如,在下图9中的模板Bookmarks.dotx相应的文本位置定义了书签。
fanjy
2019/10/09
2K0
VBA专题06-5:利用Excel中的数据自动化构建Word文档—Excel与Word整合示例2
Excel实战技巧78: 创建个人宏工作簿
个人宏工作簿是一个文件,可以在应用程序开启时运行其中的VBA代码,就像是运行功能区选项卡中的命令一样。创建个人宏工作簿很简单,如下所示。
fanjy
2020/05/25
3.7K0
Excel实战技巧78: 创建个人宏工作簿
分析一个用于传播Hancitor恶意软件的Word文档(第一部分)
最近,TechHelpList将一个用于传播Hancitor恶意软件的Word文档上传到了VirusBay,并概述了与之相关的站点、C2服务器以及由该文档所释放的payload。由于Hancitor通常被用于下载Pony和ZeusPanda恶意软件,因此我决定对这个文档进行分析,以了解程序流程和功能。
FB客服
2018/09/21
1.5K0
分析一个用于传播Hancitor恶意软件的Word文档(第一部分)
利用office宏反弹shell
office宏,译自英文单词Macro。宏是微软公司为其OFFICE软件包设计的一个特殊功能,软件设计者为了让人们在使用软件进行工作时,避免一再地重复相同的动作而设计出来的一种工具,它利用简单的语法,把常用的动作写成宏,当在工作时,就可以直接利用事先编好的宏自动运行,去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动化。
洛米唯熊
2019/07/25
2.3K0
利用office宏反弹shell
VBA专题06-4:利用Excel中的数据自动化构建Word文档—Excel与Word整合示例1
1.创建Word文档模板,用来作为数据分析结果发布平台。在模板中,在每个要插入数据的位置定义书签。当然,对于只导入一两个数据表来说,这一步可选。
fanjy
2019/10/09
6.3K0
VBA专题06-4:利用Excel中的数据自动化构建Word文档—Excel与Word整合示例1
干货 | Office文档钓鱼的实战和免杀技巧
原文链接:https://mp.weixin.qq.com/s/OdCrUOsVAscqOjWaq2w8hQ
HACK学习
2021/12/13
8.6K0
干货 | Office文档钓鱼的实战和免杀技巧
二 详解VBA编程是什么
直到 90 年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言——–Visual Basic For Application(VBA),可以认为 VBA 是非常流行的应用程序开发语言VASUAL BASIC 的子集.实际上VBA是”寄生于”VB应用程序的版本.VBA和VB的区别包括如下几个方面:
全栈程序员站长
2022/09/02
6.5K0
二 详解VBA编程是什么
Excel VBA编程
在Excel中,数据只有文本,数值,日期值,逻辑值和错误值五种类型。但是在VBA中,数据类型跟Excel不完全相同。根据数据的特点,VBA将数据分为布尔型(boolean),字节型(byte),整数型(integer),单精度浮点型(single),双精度浮点型(double),货币型(currency),小数型(decimal),字符串型(string),日期型(date),对象型等等
全栈程序员站长
2022/08/11
48.8K0
Excel VBA编程
【3】利用Word模板生成文档的总结
阅读目录 Word二次开发概况 使用DsoFramer进行开发 使用Interop进行开发 打开、关闭和写入操作 批量替换文本 遍历段落替换文本 查找后逐个替换文本 结论 在各类应用系统开发中,和Word相关的应用可谓相当广泛。如各类MIS系统、各种和实际业务结合紧密的系统、需要制式报表的系统等,都需要对Word进行操作,典型的应用包括: 1、内嵌Word。在系统中内嵌Word,这样,既可以利用Word强大的功能进行文档的新建、编辑、修改、排版,同时还节省了用户对于编辑器操作的学习成本,提高了文档格式的通用
用户1075292
2018/01/23
2.8K0
【3】利用Word模板生成文档的总结
Word VBA技术:对文件夹中的所有文档进行批量替换操作
下面的代码将对指定文件夹中的所有文档中的内容执行指定的替换操作。执行代码后,仅在打开第一个文档后,显示“查找和替换”对话框,供用户在对话框中设置替换的文本,然后按下“全部替换”按钮,接着按下“关闭”按钮。此时,程序会询问用户是否处理指定文件夹中的所有文件,如果单击“是”,则使用刚才在“查找和替换”对话框中输入的设置处理其余文件。
fanjy
2023/02/24
2.3K0
SpringBoot集成onlyoffice实现word文档编辑保存
onlyoffice为一款开源的office在线编辑组件,提供word/excel/ppt编辑保存操作
code2roc
2023/07/19
2.4K0
Excel实战技巧:创建带有自定义功能区的Excel加载宏
创建的这个带有自定义功能区的Excel加载宏将可以有任意工作簿中使用,下面我们详细讲解其创建过程。
fanjy
2022/11/16
4.1K0
Excel实战技巧:创建带有自定义功能区的Excel加载宏
从EXCEL VBA开始,入门业务自动化编程
本文介绍了如何利用宏在Excel中批量处理员工信息,包括自动填充、批量修改、数据导出等。通过使用宏,可以大幅提高数据处理效率,节省时间和精力。同时,本文还介绍了如何在Excel中创建带有宏的Excel文件,以及如何管理和运行宏。
企鹅号小编
2018/01/05
18.7K1
从EXCEL VBA开始,入门业务自动化编程
VBA专题05-1:一文彻底掌握用户窗体编程基础知识(上)
引子:本文改编著自Microsoft很久以前的一篇技术文章,虽然年代已久,但完全不过时。文章以完整的示例详细介绍了用户窗体的基本概念及常用技术,能够帮助你快速掌握用户窗体编程基础。
fanjy
2019/09/17
7.2K0
相关推荐
钓鱼技术
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档