Nie można uzyskać dostępu do odsłoniętych metod COM w VBA

Próbuję uzyskać dostęp do odsłoniętych metod COM w języku VBA.

Problem: Widzę wszystkie domyślne metody (jakGetHashCode, GetType iToString) w VBA, alenie te, które są częścią interfejsu COM i specjalnie napisane, aby były widoczne jako COM (jakgetStringValue() poniżej).

Szczegóły konfiguracji:

Visual Studio 2008Windows 7 x64Office 2007.NET 3.5Interfejs „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>
Implementacja „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>

W właściwościach budowania sprawdziłem„Sprawdź, czy zespół COM jest widoczny” (patrz poniżej migawka)

Poprosił również Visual Studio 2005 o wykonanie„Zarejestruj się na interop COM” (patrz poniżej migawka)

I wreszcie, jako zdarzenie po kompilacji, używam regasm.exe, aby zarejestrować .DLL, a także .TLB do rejestru w następujący sposób:

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

W widoku Excel Object Explorer włączyłem serwer COM (napisany powyżej SimpleCOMAssembly), a teraz w Eksploratorze obiektów nie wyświetla on metody interfejsu COM (patrz poniżej)

Czy ktoś może mi pomóc wiedzieć, czego brakuje, co powoduje, że metody interfejsu COM nie są wyświetlane w VBA?

EDYTOWAĆ Dołączanie widoku ITypeLib wygenerowanej TLB

questionAnswers(3)

yourAnswerToTheQuestion