VBA中自定义COM类中的智能感知

有没有办法在VBA中的自己构建的COM类中获得IntelliSense?

例如,在下面的例子中,我想要显示“数字”,只要按下点(或ctrl +空格键)即可: 在这里输入图像描述

我想,如果这个问题得到了解决,我也会在这里得到关于这些对象的公共职能的一些信息:

因此,有什么建议?

建议1

在这里输入图像描述

结果 - 没有工作。

结果:这对我很有用(代码主要来自@dee):https://github.com/Vitosh/C-Sharp-Stuff/tree/master/IntSense


简单的例子可能是这样的。

名为IntellisenseDemo代码的c#类库

using System;
using System.Runtime.InteropServices;

namespace IntellisenseDemo
{
    [ComVisible(true)]
    [Guid("41B3F5BC-A52B-4AED-90A0-F48BC8A391F1")]
    [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
    public interface IIntellisenseDemo
    {
        int Number { get; set; }
        string TestString(string name);
    }

    [ComVisible(true)]
    [Guid("20EBC3AF-22C6-47CE-B70C-7EBBA12D0A29")]
    [ClassInterface(ClassInterfaceType.None)]
    [ProgId("IntellisenseDemo.Demo")]
    public class Demo : IIntellisenseDemo
    {
        public int Number { get; set; }
        public string TestString(string name)
        {
            throw new NotImplementedException();
        }
    }
}

注意: [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]指示一个接口作为调度接口暴露给COM,它只启用后期绑定。

[ClassInterface(ClassInterfaceType.None)]意味着CLR不公开此类型的类接口。 COM客户端可以使用IIntellisenseDemo接口中的方法调用此类的成员。

regasm

C:WindowsMicrosoft.NETFrameworkv4.0.30319>regasm C:TempIntellisenseDemo.dll /tlb: C:TempIntellisenseDemo.tlb

VBA

在这里输入图像描述

在这里输入图像描述

链接地址: http://www.djcxy.com/p/37611.html

上一篇: IntelliSense in custom COM classes in VBA

下一篇: Altering different python objects in parallel processes, respectively