In VBA kann nicht auf verfügbar gemachte COM-Methoden zugegriffen werden

Ich versuche, auf COM herausgestellte Methoden in VBA zurückzugreifen.

Problem: Ich sehe alle Standardmethoden (wieGetHashCode, GetType undToString) in VBA abernicht diejenigen, die Teil der COM - Schnittstelle sind und speziell so geschrieben wurden, dass sie COM - sichtbar sind (wie zgetStringValue() unten).

Einrichtungsdetails:

Visual Studio 2008Windows 7 x64Office 2007.NET 3.5Schnittstelle 'IGetMyString.cs'
<code>using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace SimpleCOMAssembly
{
    [ComVisible(true), GuidAttribute("4153A1AC-ECE9-4f66-B56C-1DDEB6514D5D")]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)]
    interface IGetMyString
    {
        [DispId(1)]
        string getStringValue();
    }
}
</code>
Implementierung 'GetMyString.cs'
<code>using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.ComponentModel;

namespace SimpleCOMAssembly
{
    [ComVisible(true), GuidAttribute("0A3D4D65-CF50-4020-BF13-77001F8AAABE")]
    [ProgId("SimpleCOMAssembly.GetMyString")]
    [ClassInterface(ClassInterfaceType.None)]
    public class GetMyString : IGetMyString
    {
        public GetMyString() { }

        [ComVisible(true), Description("Get my string")]
        public string getStringValue()
        {
            return "hello";
        }
    }
}
</code>

In Eigenschaften erstellen habe ich überprüft'Assembly COM sichtbar machen' (siehe unten Schnappschuss)

Hat auch Visual Studio 2005 gebeten, das zu machen'Für COM-Interop registrieren' (siehe unten Schnappschuss)

Und schließlich führe ich als Postbuild-Ereignis die Datei "regasm.exe" aus, um die DLL und auch die TLB in der Registrierung wie folgt zu registrieren:

<code>%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\regasm /codebase "$(TargetPath)" /tlb:"$(TargetDir)$(TargetName).lib"
</code>

In der Excel-Ansicht des Objekt-Explorers habe ich den COM-Server (SimpleCOMAssembly, siehe oben) aktiviert. Im Objekt-Explorer wird die COM-Schnittstellenmethode jetzt nicht mehr aufgelistet (siehe unten).

Kann mir jemand helfen, zu wissen, was ich vermisse, was dazu führt, dass die COM-Schnittstellenmethoden in VBA nicht angezeigt werden?

BEARBEITEN ITypeLib-Ansicht des generierten TLB anhängen

Antworten auf die Frage(3)

Ihre Antwort auf die Frage