VBA中如何调用exe程序? 如:我要用Excel2007 VBA 编程实现打开Caculator,并输入12+3=15,如何实现?

VBA中如何调用exe程序? 如:我要用Excel2007 VBA 编程实现打开Caculator,并输入12+3=15,如何实现?,第1张

调用外部程序使用Shell语句,下面的实例是调用CMD命令打开DOS窗口并执行Dir命令,将浏览结果存入文件,然后用open语句打开文件,读入vba,实例中使用的是绝对路径,如果是相对路径用“&”表示盘符,您要调用计算器,并获取计算器的计算结果,仅调用外部程序是不行的,我尝试使用API函数钩子,结果是自己重新写一个计算器都没那么费神

Sub shellcall()

Shell "cmd /c dir c:\>c:\1aaa.txt"

Open "c:\11ss.txt" For Input As #1

Dim s As String

While Not EOF(1)

Line Input #1, s

Debug.Print s

Wend

Close #1

End Sub

方法如下:

1、打开ppt;

2、点击插入->对象;

3、在d出的窗口点击由文件创建,选择需要插入的word文档,勾选链接;

4、确定,完成。

使用shell函数即可。

shell函数用法:Shell(pathname[,windowstyle])

函数带有两个参数:第一个pathname是必要参数。要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。第二个Windowstyle是可选参数。表示在程序运行时窗口的样式。如果省略,则程序是以具有焦点的最小化窗口来执行的。

第二参数Windowstyle 参数设置不同的值,打开的程序有不同的效果,其对应关系如下:

0——窗口被隐藏,且焦点会移到隐式窗口

1——窗口具有焦点,且会还原到它原来的大小和位置。

2——窗口会以一个具有焦点的图标来显示。

3——窗口是一个具有焦点的最大化窗口。

4——窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。

6——窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。

举例——假定用VBA来打开计算器程序,并使计算器窗口具有焦点,且还原到它原来的大小和位置,代码如下:

Sub VBA调用其他程序示例()

Shell "calc.exe", 1

End Sub

说明:

1、Shell函数具有返回值,如果打开程序成功的话,返回代表这个程序的任务ID,若不成功,则会返回0,示例中不需用它的返回值,按VBA规则就不能用括号。

2、这里打开的是系统文件夹里面的程序,所以省略了路径,如果打开其他文件夹的程序,则需要指明路径。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12147426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存