如何在excel中使用VBA调用其它外部程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在excel中使用VBA调用其它外部程序相关的知识,希望对你有一定的参考价值。

使用shell语句,例子:

Sub RAR()
    Shell "C:\\Program Files\\WinRAR\\WinRAR.exe", vbNormalFocus
End Sub
参考技术A shell
外壳程序,你看看可以不
参考技术B Shell 函数
R执行一个执行档程式,如果成功的话,会传回一个 Variant (Double) 来代表这个程式的 task ID,若不成功,则会传回 o。 语法
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 函数可以成功地执行所要的执行档,则它会传回启始程式的 task ID , task ID 是一个唯一的数值,用来指名执行中的程式,如果 Shell 函数无法开启指名的程式,则会产生错误

附注 预设情况为 Shell 函数是以非同时方式来执行其它程式,也就是说,用 Shell 所启动的程式,可能还没执行完全,就执行到 Shell 函数之後的陈述式。
参考之后的代码是这样写的,

Sub MacroUpdate()
On Error GoTo ErrorHandler
ID = Shell(ThisWorkbook.Path & "\" & "LiveUpdate.exe", 4)
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbInformation, MacroTitle
End Sub

运行正常,

ExcelVBA如何调用API DLL(Delphi生成)

Public Declare Function plock Lib "passzy.dll" (ByVal s As String) As Boolean
Declare Function punlock Lib "passzy.dll" (ByVal s As String) As Boolean
在excel中执行的时候,提示第一行错误:编译错误,常数、固定长度字符串…………
我的delphi中声明:(DLL中包含窗体,其它没什么特别的了)
function punlock(s:pchar):boolean; stdcall;
function plock(s:pchar):boolean; stdcall;
编译好的dll,用delphi本身是可以完美调用的。
另外这个DLL无法regsvr32.exe注册,无法用VBA引用。请问我应该怎么做?
(已经解决了,无满意答案)Public改成Private就可以调用了,另外VBA的boolean与Delphi类型格式不一样,传递无意义,必须用整形、浮点或字符串。改成long对integer后完美运行

参考技术A :档案信息化建设的目标就是在现代化的技术条件下,一方面促进档案本身信息进入社会交流系统,在社会中广为传播,另一方面就是将档案中的信息与其他社会信息形式融合使用,在社会中传播,广泛地服务于社会。只有档案信息化建设与社会信息化同步发展,为促进国民经济和社会发展,才能确保提供快捷有效的档案信息服务。 参考技术B Public改成Private就可以调用了,另外VBA的boolean与Delphi类型格式不一样,传递无意义,必须用整形、浮点或字符串。改成long对integer后完美运行本回答被提问者采纳 参考技术C 办得到,但是要修改VB(因为它本来不行)
这里有详细说明和修改文件下载

以上是关于如何在excel中使用VBA调用其它外部程序的主要内容,如果未能解决你的问题,请参考以下文章

Excel中的VBA如何调用Java呀?

在VBA中,怎样打开或者调用另一个EXCEL文件

如何使用 VBA 在 Excel 中添加连接(到外部数据源)并将其保存到该 Excel 电子表格的连接列表

用Excel使用VBA时显示运行错误5,错误调用参数,程序特别简单,如图,求问哪里出错了

Excel 在VBA中可否调用winsock控件

Excel VBA中的ThisCell属性如何使用?