运行例1和例2 的截图:
注意点1:如果Shell函数能够启动某个可执行文件,那么它就会返回一个叫做任务ID的号码。该号码是指示应用程序启动的唯一号码。如果Shell函数不成功的话(也就是说某应用程序不能打开),VB就会产生一错误。如果你要使用Shell函数启动的应用程序的话,就不要在Shell函数后面输入任何语句。
注意点2: VBA在启动程序后,立即就回到过程里面去继续剩余的指令(因此,你没有机会立即使用该应用程序)。
二:ActivateMicrosoftApp 方法。
那么除了使用Shell函数外,你还可以很方便地使用方法ActivateMicrosoftApp来实现。该方法在微软Excel应用程序的对象里是可用的,可以激活一个Microsoft应用程序。如果该应用程序已经处于运行状态,则本方法激活一个Microsoft应用程序。如果该应用程序已经处于运行状态,则本方法将启动应用程序。
语法:expression.ActivateMicrosoftApp(index)
expression必需。该表达式返回一个Application对象
index必需XlMSApplication。指定要激活的Microsoft应用程序
使用下列常量,常量的名称指名应用程序名称。
Access xlMicrosoftAccess
FoxPro xlMicrosoftFoxPro
Mail xlMicrosoftMail
PowerPoint xlMicrosoftPowerPoint
Project xlMicrosoftProject
Schedule xlMicrosoftSchedulePlus
Word xlMicrosoftWord
例如,要从立即窗口启动PowerPoint的话,你所有要做的事情就是输入下面的指令并且按下Enter: Application.ActivateMicrosoftApp xlMicrosoftPowerPoint
注意ActivateMicrosoftApp方法要求一个常量来指定要启动的程序。如果PowerPoint没有打开的话,上面的过程就会打开PowerPoint,但是如果该程序已经打开的话,该指令不会再打开一个新的PowerPoint界面,只是简单的激活已经在运行的应用程序。
代码:
Sub MYPowerPoint()
Application.ActivateMicrosoftApp xlMicrosoftPowerPoint
End Sub
截图:
运行:
其实在VBA代码中还有些其他的可以打开程序的方法,就不一一列举了。请大家在实践中摸索掌握,
今日内容回向:
1 如何用VBA打开一个程序?
2 本讲讲的两种方法有什么不同?