我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的劳动效率,而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册,现在已经全部完成,希望大家利用、学习。
如果您只是一般的职场VBA需求,可以打包选择7.1.3.9教程+汉英手册,第7套教程是入门,第1套教程是入门后的提高,第3套教程字典是必备的VBA之精华,第9套教程是实用的典型案例讲解。这四套教程内容掌握后足以处理一般工作中的问题,实际写代码的时候再辅助代码汉英手册,足矣!如果您想进一步提高,就需要选择高级阶段的教程了。
VBA是面向对象编程的语言,博大精深。很多朋友咨询VBA的学习方法,我会陆续给大家讲解一些我的经验,大家可以慢慢体会。今日的内容是:如何学习VBA_3.2.19:利用Shell函数运行可执行程序
【分享成果,随喜正能量】喝茶,喝的是日月沐浴之下,山泉滋养之中,一年四季流动的自然之气。喝茶,就是让我们跟随这种草木之性,真正将自己还原到自然之中。。
3.2.19 几个特殊功能的实现
在VBA的应用中,我给大家讲解了几个有意思的应用:1 VBA实现定时关机;2 如何暂停代码的运行;3 利用代码让程序延时;4 如何让VBA做到自毁程序;5 数据的校验。
大家看下面的几句代码:
① Shell ("Shutdown.exe -s -t 30")
② Application.Wait Now() + VBA.TimeValue("00:00:01")
③ Private Declare PtrSafe Sub
④ Remove .Item(vbc.Name)
⑤ Private Sub object_KeyPress( ByVal KeyANSI As MSForms.ReturnInteger)
为了更好地方便大家理解教程中的讲解,我就几个关键点给大家加以介绍;
Shell 函数:运行可执行程序并在成功时返回表示程序的任务 ID 的 Variant (Double);否则返回零。
语法:Shell(pathname, [ windowstyle ])
参数:
1)pathname 必需;Variant (String)。要执行的程序的名称以及任何必需的参数或命令行开关;可能包括目录或文件夹和驱动器。在 Macintosh 中,可以使用 MacID 函数指定应用程序的签名,而不是名称。 以下示例使用 Microsoft Word 的签名:Shell MacID("MSWD")
2) windowstyle 可选。与要运行程序的窗口的样式对应的 Variant (Integer)。如果省略 windowstyle,则在最小化焦点的情况下启动程序。在 Macintosh(系统 7.0 或更高版本)上,windowstyle 仅确定程序在运行时是否获得焦点。
其中windowstyle 命名的参数具有以下这些值:
vbHide 0 窗口将隐藏,并且焦点将传递给隐藏窗口。vbHide 常量在 Macintosh 平台中不适用。
vbNormalFocus 1 窗口具有焦点且还原为其原始大小和位置。
vbMinimizedFocus 2 窗口将显示为具有焦点的图标。
vbMaximizedFocus 3 使用焦点最大化窗口。
vbNormalNoFocus 4 窗口将还原为其最新的大小和位置。当前活动窗口仍保持活动状态。
vbMinimizedNoFocus 6 窗口将显示为图标。当前活动窗口仍保持活动状态。
-
- 如果 Shell 函数成功执行命名文件,它将返回已启动程序的任务 ID。 任务 ID 是标识正在运行的程序的唯一编号。 如果 Shell 函数无法启动指定的程序,则会发生错误。
- 在 Macintosh 中,vbNormalFocus、vbMinimizedFocus 和 vbMaximizedFocus 都将应用程序置于前台;vbHide、vbNoFocus 和 vbMinimizeFocus 都将应用程序置于后台。
其他:对于数据的校验,有些学员会利用正则运算,这块的内容在我的第六套教程及第九套教程中会有介绍,但在VBA中一般总会有其他的方案替代;关于64位的API函数声明语句,我在第六套教程中也有讲解,如果大家有需要,我会提供一份专门的资料给大家。
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: