分享

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

 绝对静止 2015-04-20

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

Word变身贴心提醒器

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

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

1422objd1

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

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

1422objd2

图2 在宏中输入VBA代码

Sub Autoexec()

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

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

End if

End Sub

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

1422objd3

图3 VBA提示框

阅后即焚的Excel工作薄

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

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

1422objd4

图4 设置定义参数

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

1422objd5

图5 在当前工作薄建立宏

1422objd6

图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)。

1422objd7

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

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

1422objd8

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

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

小提示:

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多