从VBA调用第三方公共ComVisible.Net方法

从VBA调用第三方公共ComVisible.Net方法,.net,com,.net,Com,我需要从第三方.Net程序集调用一个方法。我想要的对象是公共的,并用ComVisible属性标记。我想要的方法是public,但采用IRibbonControl。因此: [ComVisible(true)] public class CustomUI : IRibbonExtensibility 。。 这是否可能,例如通过VBA中的CreateObject?我需要在VBA中创建一个IRibbonControl,对吗 我知道这并不能直接回答您的问题,但是如果您使用dispid设置界面并正确地重

我需要从第三方.Net程序集调用一个方法。我想要的对象是公共的,并用ComVisible属性标记。我想要的方法是public,但采用IRibbonControl。因此:

[ComVisible(true)]
public class CustomUI : IRibbonExtensibility
。。


这是否可能,例如通过VBA中的CreateObject?我需要在VBA中创建一个IRibbonControl,对吗

我知道这并不能直接回答您的问题,但是如果您使用dispid设置界面并正确地重新命名它,您“应该”能够在VBA中使用它。我通常在计算机上使用VBScript测试来测试COM公开对象

显然,这是VB.NET代码,但属性等只是C#的一种稍微不同的格式。(如果您在这方面需要更多帮助,请告诉我)

您能否在注册表中正确地看到对象寄存器(搜索对dll的引用或查找其类名)

请确保使用
regasm“指向DLL的路径”//codebase/tlb
注册DLL。如果不注册tlb,我认为VBA将无法找到该对象

在VBScript中,尝试设置myobj=CreateObject(“FULLREFERENCE.CLASSNAME”)您需要进行实验,直到获得确切的名称

然后在VBA代码中,根据注册方式向tlb/dll添加引用

Dim var As Office.IRibbonControl
Set var = New Office.IRibbonControl
将创建IRibbonControl对象


您可能想看到:

如果我需要添加引用,您能告诉我它叫什么吗?你发布的代码不会编译:“新关键字的使用无效”它不是我的界面,它是第三方。(我刚才在我的问题描述中编辑了这个)
Dim var As Office.IRibbonControl
Set var = New Office.IRibbonControl