office交流网--QQ交流群号

Access培训群:792054000         Excel免费交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

Access VBA如何使用Shell命令以及如何传递参数

2017-08-09 22:09:00
zstmtony
原创
6636

Access要调用第三方的Exe 执行程序,就需要用到Shell函数,那Access VBA如何 调用Shell 函数呢

使用非常简单

Shell "要执行命令的路径"


例如要打开微软Word文档处理,可以使用如下的命令:

Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE "


但如何传递更多的参数呢,如打开Word时,同时打开相就能的Doc文件呢?

Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & "c:\TmTony\testShell.doc"


更多示例代码:

 
1. 打开记事本
   Private Sub Command1_Click()
    Shell "Notepad E:\VB练习\添加DTPicker控件.txt ", vbNormalFocus
   End Sub
注:NotePad后有空格
2. 打开QQ登陆界面
   Private Sub Command2_Click()
    Shell "D:\Program Files\Tencent\QQ2009\Bin\qq.exe", vbNormalFocus
   End Sub
3. 打开Word文档
   Private Sub Command3_Click(Index As Integer)
   Dim strDir As String
   strDir = "E:\VB练习\Test.doc"
   Select Case Index
   Case 0
         Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & strDir, vbHide
   Case 1
         Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & strDir, vbNormalFocus
   Case 2
         Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & strDir, vbMinimizedNoFocus
   Case 3
         Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & strDir, vbNormalNoFocus
   Case 4
         Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & strDir, vbMaximizedFocus
   End Select
   End Sub
注:C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE之后有空格
 


Shell 函数 官方详细的相关说明:


执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。

语法

Shell(pathname[,windowstyle])

Shell 函数的语法含有下面这些命名参数:

部分 描述
pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。


windowstyle 命名参数有以下这些值:

常量 值 描述
vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。


说明

如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。

注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。

分享