如何从Excel VBA调用.NET方法?

11 浏览
0 Comments

如何从Excel VBA调用.NET方法?

我找到了一种方法可以直接从VBA代码中调用.NET 2代码:

Dim clr As mscoree.CorRuntimeHost
Set clr = New mscoree.CorRuntimeHost
clr.Start
Dim domain As mscorlib.AppDomain
clr.GetDefaultDomain domain
Dim myInstanceOfDotNetClass As Object
Set myInstanceOfDotNetClass = domain.CreateInstanceFrom("SomeDotNetAssembly.dll", "Namespace.Typename").Unwrap
Call myInstanceOfDotNetClass.ExecuteSomeDotNetMethod

我使用工具->引用在Excel VBA中添加了对mscoree.tlb和mscorlib.tlb的引用。

这适用于.NET CLR 2组件,支持. NET Framework版本3.5。

我需要使其适用于.NET 4。

我了解到.NET CLR4引入了另一种与版本无关的创建运行时实例的方式,并且我找到了一个用C++编写的代码示例:

http://dev.widemeadows.de/2014/02/04/hosting-the-net-4-runtime-in-a-native-process/

我的Excel VBA技能不足以翻译这几行代码。

0