IPC – Excel和.Net应用程序
我想在VBA中定义一个小函数ZipDistance,它计算两个邮政编码之间的距离。 因为我在.Net应用程序中有这样的function,所以只需要用正确的参数执行这个应用程序,然后再读取结果就可以了。
.net应用程序的参数是两个zipcode(即整数),计算的结果是一个整数。
像下面的东西会工作得很好。
Dim ret as Integer ret = Execute("my-net-app.exe 9000 8000")
任何build议如何做到这一点? 任何退出代码,使用标准的.net应用程序读取到文件和parsing该文件在Excel中将是可以接受的。 只要它相当简单。
你所要求的function是我的理解中的Shell() 。 但是,这不会返回您的exe的返回,而是应用程序的“任务ID”,根据在线帮助。 要与您的应用程序进行通信,您需要自动化,IMO。
那么,如果你的exe的输出可以在控制台上redirect到一个文本文件
Shell "my-net-app.exe 9000 8000 > g:\distance\result.txt"
),你可以用好老的Open:
Dim intFile As Integer, strDistance As String intFile = Freefile Open "g:\distance\result.txt" For Input As #intFile Input #intFile, strDistance Close #intFile
我甚至没有检查过的语法细节,这只是为了显示path。 我已经做了阅读复杂的文件(重buildTransferText这种方式),所以我知道它的作品。
我不会推荐它。 这不是从单个程序传递单个信息的方式。 由于我不喜欢像这样的自动化一个小程序的麻烦,我会重buildVBA中的function。