我有这个vba代码
Dim strpath As String
Dim this As String
strpath = "C:\Users\johbra\Documents\Visual Studio 2010\Projects\WindowsApplication6\WindowsApplication6\bin\Debug\WindowsApplication6.exe"
this = Shell(strpath)
MsgBox this
我在.net程序中也有这个功能
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
dothis()
Application.Exit()
End Sub
Function dothis()
Return "HI"
End Function
End Class
我试图让vba代码给我一个说“HI”的消息框..这可能吗?
答案 0 :(得分:3)
从VBA调用.NET代码的最可接受和最可靠的方法是将.NET类公开为COM类(不需要额外的代码,只需勾选项目属性中的相应框),然后添加COM类的引用在您的VBA项目中,您对其他任何其他COM类的方式,并调用该函数。
Here's a guide on how exactly this is done.
如果您需要有关如何执行此操作的详细信息,请与我们联系。
答案 1 :(得分:0)
我认为您需要使用命令行参数进行尝试。
喜欢:
Dim CommandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = My.Application.CommandLineArgs
For i As Integer = 0 To CommandLineArgs.Count - 1
MessageBox.Show(CommandLineArgs(i))
Next
将参数传递回VBA脚本;
Console.WriteLine("Message")
可以在您的VBA代码中捕获控制台结果......