百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

用好VBA——Office变身瑞士军刀

liebian365 2025-01-20 14:33 17 浏览 0 评论

前面的文章中介绍过,Office比WPS强大的原因之一,就是它有VBA支持。VBA如同一把多功能的瑞士军刀,可以为Office补充各种我们需要的功能,为日常的使用带来更多便利。下面就为大家介绍几例,希望大家能举一反三。

Word变身贴心提醒器

现在大家的工作和学习节奏都很快,工作一忙起来就忘这忘那。对于一些重要的日子(如MM的生日、自考日、情人节等),很有必要对自己进行提醒。利用我们常用的Word即可打造一个贴心的提醒器。

提醒器的操作需要借助VBA脚本实现,由于Word 2013默认并没有显示VBA工具,所以要点击“文件”菜单,接着在打开的Word边栏上点击“设置/自定义功能区”,打开自定义功能区设置页面,向下拖动滚动条,找到“开发工具”,勾选“开发工具”,将其添加到菜单栏上(图1)。

图1 添加开发工具到菜单栏

接着新建一个空白文档,切换到“开发工具”,点击“宏→新建”,新建一个宏,然后在宏里输入下列的代码(图2,斜杠后为注释内容无需输入):

图2 在宏中输入VBA代码

Sub Autoexec()

If Month(Now()) = 10 And Day(Now()) = 21 Then //表示指定日期10月21号执行

MsgBox "主人,记住明天要参加自考,请提前做好准备哦" //弹出提醒对话框内容,请自行设置

End if

End Sub

保存后继续点击“开发工具→宏安全性”,将其设置为“启用所有宏”,这样只要到了10月21号,当打开Word开始办公时,就会自动弹出提示框,提醒我们应该做好准备参加自考(图3)。

图3 VBA提示框

阅后即焚的Excel工作薄

对于重要的文档,我们经常可以在电影电视上看到有阅后即焚的自毁功能。其实这些看似神奇的高科技功能,借助Excel的VBA脚本同样可以实现。比如我们可以制作一个仅能打开2次的XLS文档。

启动Excel后,同上添加开发工具栏,然后制作一个需要阅后即焚的重要文档。接着选中任意一个空白单元格右击选择“定义”,在打开的窗口中将其名称定义为“opentimes”,引用位置设置为“=0”,作为初始打开的计数依据(图4)。

图4 设置定义参数

接着点击“开发工具→宏”,新建一个名为“cfan”的宏,宏的位置位于当前工作簿,使得这个宏只在当前工作薄生效(图5)。按提示在打开的窗口中输入相应的代码(图6)。

图5 在当前工作薄建立宏

图6 输入自焚代码

这段代码中,以下部分用来计数,其中“If Otime > 2”表示,如果文档被打开过2次后,即启动自毁程序。具体文档可打开的次数,可以自行设置。如果打开的文档次数不足2,则进行计数累加。

Dim Otime As Integer

Otime = Evaluate(ThisWorkbook.Names("opentimes").RefersTo)

Otime = Otime + 1

If Otime > 2 Then

Call 启动自毁

Else

ThisWorkbook.Names("opentimes").RefersTo = Otime

ThisWorkbook.Save

End If

所谓的自毁程序,其实也非常简单,只有几行代码,执行删除操作。

Sub 启动自毁()

With ThisWorkbook

.Saved = True

.ChangeFileAccess xlReadOnly

Kill .FullName

.Close

End With

End Sub

点击保存并退出VBA窗口,然后将文件另存,在保存窗口的保存类型中选择“Ecxel启用宏的工作薄”。这样当用户打开该文档时就会自动运行上述设置的宏(图7)。

图7保存为Ecxel启用宏的工作薄

用户首次打开该文档后,按下Ctrl+F3键可以看到打开次数变为1,因为文档只允许用户打开1次,这样用户试图再次打开该文档时,运行的宏就会自动调用自毁程序,将当前文档彻底删除,并且还无法从回收站恢复,有效保护重要文档的安全(图8)。

图8 每打开一次文档就会自动计数

当然,除了使用定义来读取打开次数外,使用文档属性值、日期设置(在指定日期前自毁)、文件路径、计算机名(如果不是本机打开则自毁)等参数设置更多的自毁设置。具体操作可以参考VBA其他函数进行设置即可。

小提示:

VBA脚本还有更多神奇的功效,比如有的网友利用Excel自制赛车游戏,有的则制作出聊天工具,高手们甚至将Excel打造为家居装修的利器,大家可以到Excel论坛去下载VBA脚本实现更多的功能。

相关推荐

4万多吨豪华游轮遇险 竟是因为这个原因……

(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...

“菜鸟黑客”必用兵器之“渗透测试篇二”

"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...

科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白

作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...

麦子陪你做作业(二):KEGG通路数据库的正确打开姿势

作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...

知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势

智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...

每日新闻播报(September 14)_每日新闻播报英文

AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...

香港新巴城巴开放实时到站数据 供科技界研发使用

中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...

5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper

本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...

Qt动画效果展示_qt显示图片

今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...

如何从0到1设计实现一门自己的脚本语言

作者:dong...

三年级语文上册 仿写句子 需要的直接下载打印吧

描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...

C++|那些一看就很简洁、优雅、经典的小代码段

目录0等概率随机洗牌:1大小写转换2字符串复制...

二年级上册语文必考句子仿写,家长打印,孩子照着练

二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...

一年级语文上 句子专项练习(可打印)

...

亲自上阵!C++ 大佬深度“剧透”:C++26 将如何在代码生成上对抗 Rust?

...

取消回复欢迎 发表评论: