Sdílet prostřednictvím


Postupy: Vystavení kódu v projektu jazyka Visual C# pro jazyk VBA

Kód jazyka Visual C# projektu jazyka Visual Basic pro Applications (VBA), kód může vystavit Pokud má dva typy kódu vzájemně spolupracovat.

Se liší od procesu Visual Basic proces Visual C#.Další informace naleznete v tématu Postupy: Vystavení kódu v projektu jazyka Visual Basic pro jazyk VBA.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu v těchto aplikacích: Excel 2013 a Excel 2010; Word 2013 a Word 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému Office a typů projektu.

Vystavení kódu v aplikaci Visual C# projektu

Pokud chcete povolit volání kódu v projektu Visual C# kódu VBA, změnit kód tak, aby byl viditelný COM a poté nastavte ReferenceAssemblyFromVbaProject vlastnost True v návrháři.

Návod, který ukazuje, jak volat metoda z VBA v projektu Visual C#, viz Návod: Volání kódu z jazyka VBA v projektu jazyka Visual C#.

Vystavit kód v jazyce Visual C# projektu VBA

  1. Otevřete nebo vytvořte dokument úroveň projektu, založené na dokument aplikace Word, sešit aplikace Excel nebo šablonu aplikace Excel makra, která podporuje, který již obsahuje kód jazyka VBA.

    Další informace o formátech souborů dokumentů, které podporují maker naleznete v Kombinování přizpůsobení na úrovních VBA a dokumentu.

    [!POZNÁMKA]

    Tuto funkci nelze použít v aplikaci Word šablony projektů.

  2. Zajistěte, že kód VBA v dokumentu je povoleno spustit bez zobrazení výzvy k povolení maker.Kód VBA spustit přidáním umístění Office project do seznamu důvěryhodných umístění v Centru nastavení aplikace Word nebo Excel můžete důvěřovat.

  3. Přidat člena, který chcete zpřístupnit veřejné třídy v projektu VBA a deklarovat jako nový člen public.

  4. Použijte následující ComVisibleAttribute a ClassInterfaceAttribute atributy třídy, které jsou vystaveny na VBA.Tyto atributy zviditelnit třídy COM, ale bez generování rozhraní třídy.

    [System.Runtime.InteropServices.ComVisible(true)]
    [System.Runtime.InteropServices.ClassInterface(
        System.Runtime.InteropServices.ClassInterfaceType.None)]
    
  5. Přepsat GetAutomationObject třídy položku hostitele v projektu VBA vrátit instance třídy, které jsou vystaveny:

    • Pokud jsou vystaveny třída položku hostitele VBA, přepsat GetAutomationObject metoda, která patří do této třídy a vrátit aktuální instanci třídy.

      protected override object GetAutomationObject()
      {
          return this;
      }
      
    • Pokud jsou vystaveny třídu, která není hostitele položka kódu VBA, přepsat GetAutomationObject metodu libovolného hostitele položka v projektu a vrátí instanci třídy položky bez hostitele.Například následující kód předpokládá, že jsou vystaveny třídu s názvem DocumentUtilities na VBA.

      protected override object GetAutomationObject()
      {
          return new DocumentUtilities();
      }
      

    Další informace o položkách hostitele naleznete v Přehled hostitelských položek a hostitelských ovládacích prvků.

  6. Extrahujte rozhraní z třídy, které jsou vystaveny na VBA.V Extrahovat rozhraní dialogovém okně vyberte veřejné členy, které chcete zahrnout do deklarace rozhraní.Další informace naleznete v tématu Refaktoring pro extrahování rozhraní (C#).

  7. Přidat public klíčové deklarace rozhraní.

  8. Zviditelnit rozhraní COM přidáním následujícího ComVisibleAttribute atributu rozhraní.

    [System.Runtime.InteropServices.ComVisible(true)]
    
  9. Otevřít dokument (Word) nebo listu (pro Excel) v Návrháři v Visual Studio.

  10. V Vlastnosti vyberte ReferenceAssemblyFromVbaProject vlastnost a změňte hodnotu na True.

    [!POZNÁMKA]

    Pokud sešit nebo dokument neobsahuje žádný kód jazyka VBA nebo pokud není důvěryhodné pro spuštění kódu VBA dokumentu, zobrazí se chybová zpráva při nastavení ReferenceAssemblyFromVbaProject vlastnost True.Důvodem je Visual Studio nelze změnit projekt VBA v dokumentu v této situaci.

  11. Klepněte na OK v zobrazené zprávě.Tato zpráva upozorňuje, že pokud přidáte VBA kód sešitu nebo dokumentu při spuštění projektu z Visual Studio, kód VBA budou ztraceny při příštím sestavení projektu.Důvodem je výstupní dokument v sestavení složky je přepsán pokaždé, když sestavíte projekt.

    V tomto okamžiku nastaví Visual Studio projekt tak, aby projekt VBA mohou volat do sestavení.Visual Studio přidá metodu s názvem GetManagedClass projektu VBA.Tuto metodu lze volat odkudkoli v projektu VBA přístup třídy, která je vystavena VBA.

  12. Projekt sestavte.

Viz také

Úkoly

Postupy: Vytváření projektů pro systém Office v prostředí Visual Studio

Návod: Volání kódu z jazyka VBA v projektu jazyka Visual C#

Postupy: Vystavení kódu v projektu jazyka Visual Basic pro jazyk VBA

Další zdroje

Navrhování a tvorba řešení pro systém Office

Kombinování přizpůsobení na úrovních VBA a dokumentu