Sdílet prostřednictvím


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

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

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.

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

Proces je jiný kód ve třídě položku hostitele než kód v jiných tříd:

  • Vystavení kód ve třídě položku hostitele

  • Vystavení kód, který není ve třídě položku hostitele

odkaz na video Související video ukázku naleznete v tématu jak udělat I: volání VSTO kód VBA?.

Vystavení kód ve třídě položku hostitele

Povolit volání kódu jazyka Visual Basic v třídě položku hostitele kód VBA, nastavte EnableVbaCallers vlastnost položky hostitel True.

Návod, který demonstruje, jak vystavit metodu třídy položku hostitele a potom volání z jazyka VBA, viz Návod: Volání kódu z jazyka VBA v projektu jazyka Visual Basic.Další informace o položkách hostitele naleznete v Přehled hostitelských položek a hostitelských ovládacích prvků.

Vystavit kód položky hostitel na VBA

  1. Otevřete nebo vytvořte dokument úroveň Visual Basic projektu, který je založen na dokumentu 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 metodu, vlastnost nebo událost, kterou chcete vystavit na jednu položku hostitele třídy v projektu VBA a deklarovat jako nový člen Public.Název třídy závisí na aplikaci:

    • Aplikace Word je názvem třídy položku hostitele projektu, ThisDocument ve výchozím nastavení.

    • V projektu aplikace Excel jsou třídy hostitel položky s názvem ThisWorkbook, Sheet1, Sheet2, a Sheet3 ve výchozím nastavení.

  4. Nastavit EnableVbaCallers vlastnost pro položku hostitele True.Tato vlastnost je k dispozici v Vlastnosti okno položky hostitel je otevřen v návrháři.

    Po nastavení této vlastnosti Visual Studio automaticky nastaví ReferenceAssemblyFromVbaProject vlastnost 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í EnableVbaCallers vlastnost True.Důvodem je Visual Studio nelze změnit projekt VBA v dokumentu v této situaci.

  5. Klepněte na OK v zobrazené zprávě.Tato zpráva upozorňuje, přidejte kód VBA sešitu nebo dokumentu při používáte projekt z Visual Studio, kód VBA budou ztraceny při příštím sestavení projektu.Důvodem je přepsána ve výstupní složce sestavení 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á vlastnost s názvem CallVSTOAssembly se ThisDocument, ThisWorkbook, Sheet1, Sheet2, nebo Sheet3 modul v projektu VBA.Tuto vlastnost můžete použít pro přístup k veřejné členy třídy, která je vystavena VBA.

  6. Projekt sestavte.

Vystavení kód, který není ve třídě položku hostitele

Povolit kódu VBA volání kódu jazyka Visual Basic, který není ve třídě položku hostitele, změňte kód tak, aby byl viditelný VBA.

Vystavit kód, který není ve třídě položku hostitele na VBA

  1. Otevřete nebo vytvořte dokument úroveň Visual Basic projektu, který je založen na dokumentu 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 ComClassAttribute atributy třídy, které jsou vystaveny na VBA.Tyto atributy zviditelnit třída kódu VBA.

    <Microsoft.VisualBasic.ComClass()> _
    <System.Runtime.InteropServices.ComVisibleAttribute(True)> _
    
  5. Přepsat GetAutomationObject třídy položku hostitele v projektu VBA vrátit instance třídy, které jsou vystaveny.Následující příklad kódu předpokládá, že jsou vystaveny třídu s názvem DocumentUtilities na VBA.

    Protected Overrides Function GetAutomationObject() As Object
        Return New DocumentUtilities()
    End Function
    
  6. Otevřít dokument (Word) nebo Návrhář listu (pro Excel) v Visual Studio.

  7. 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.

  8. Klepněte na OK v zobrazené zprávě.Tato zpráva upozorňuje, přidejte kód VBA sešitu nebo dokumentu při používáte projekt z Visual Studio, kód VBA budou ztraceny při příštím sestavení projektu.Důvodem je přepsána ve výstupní složce sestavení 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.

  9. 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 Basic

Postupy: Vystavení kódu v projektu jazyka Visual C# 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