首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从VBA调用第三方公共ComVisible .Net方法

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

Stack Overflow用户
提问于 2012-06-06 08:06:33
回答 2查看 347关注 0票数 0

我需要从第三方.Net程序集中调用一个方法。我想要的对象是公共的,并用ComVisible属性进行了标记。我想要的方法是公共的,但需要一个IRibbonControl。所以:

代码语言:javascript
复制
[ComVisible(true)]
public class CustomUI : IRibbonExtensibility

。。。。

代码语言:javascript
复制
public void SaveAs(IRibbonControl control);

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-06 09:28:44

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

Handling VB.NET events in VB6 code

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

您是否可以在注册表中正确地看到对象注册(搜索对dll的引用或查找其类名)。

确保你用regasm "path to dll" /codebase /tlb注册了动态链接库。如果你不注册TLB,我想VBA将无法找到对象。

从VBScript尝试set myobj = CreateObject("FULLREFERENCE.CLASSNAME"),您将需要进行实验,直到您有了确切的名称。

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

票数 1
EN

Stack Overflow用户

发布于 2012-06-07 04:08:34

代码语言:javascript
复制
Dim var As Office.IRibbonControl
Set var = New Office.IRibbonControl

将创建一个IRibbonControl对象

你可能想看看:http://www.xtremevbtalk.com/showthread.php?t=265636&highlight=iribboncontrol

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10906667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档