Přizpůsobení na úrovni dokumentu programu
Když rozšíříte systém Microsoft Office Wordu nebo systém Microsoft Office Excelu pomocí přizpůsobení na úrovni dokumentu, můžete provádět následující úlohy:
Automatizujte aplikaci pomocí objektového modelu.
Přidejte ovládací prvky na povrch dokumentu.
Volání kódu jazyk Visual Basic for Application (VBA) v dokumentu ze sestavení přizpůsobení
Volání kódu v sestavení přizpůsobení z jazyka VBA
Spravujte určité aspekty dokumentu, když je na serveru, který nemá nainstalované systém Microsoft Office.
Přizpůsobte uživatelské rozhraní aplikace.
Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu pro Excel a Word. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.
Některé aspekty psaní kódu v projektech na úrovni dokumentu se liší od jiných typů projektů v sadě Visual Studio. Mnohé z těchto rozdílů způsobují způsob, jakým jsou objektové modely Office vystavené spravovanému kódu. Další informace najdete v tématu Psaní kódu v řešeních Office.
Obecné informace o přizpůsobení na úrovni dokumentu a dalších typech řešení, která můžete vytvořit pomocí vývojových nástrojů Office v sadě Visual Studio, najdete v tématu Přehled vývoje řešení pro Office (VSTO).
Použití vygenerovaných tříd v projektech na úrovni dokumentů
Když vytvoříte projekt na úrovni dokumentu, Visual Studio automaticky vygeneruje třídu v projektu, kterou můžete použít k zahájení psaní kódu. Visual Studio generuje různé třídy pro Word a Excel:
V projektech na úrovni dokumentu pro Word je třída volána
ThisDocument
ve výchozím nastavení.Projekty na úrovni dokumentu pro Excel mají více vygenerovaných tříd: jeden pro samotný sešit a jeden pro každý list. Ve výchozím nastavení mají tyto třídy následující názvy:
ThisWorkbook
Sheet1
Sheet2
Sheet3
Vygenerovaná třída obsahuje obslužné rutiny událostí, které jsou volány při otevření nebo zavření dokumentu. Pokud chcete spustit kód při otevření dokumentu, přidejte kód do obslužné rutiny
Startup
události. Pokud chcete kód spustit těsně před zavřeným dokumentem, přidejte kód doShutdown
obslužné rutiny události. Další informace naleznete v tématu Události v projektech Office.
Principy návrhu vygenerovaných tříd
V projektech, které cílí na rozhraní .NET Framework 4 nebo .NET Framework 4.5, jsou typy položek hostitele v sadě Visual Studio Tools for Office runtime rozhraní, takže generované třídy nemohou odvozovat jejich implementaci. Místo toho generované třídy odvozují většinu svých členů z následujících základních tříd:
ThisDocument
: je odvozen z DocumentBase.ThisWorkbook
: je odvozen z WorkbookBase.Sheet
n: odvozuje z WorksheetBase.Tyto základní třídy přesměrují všechna volání jejich členů na interní implementace odpovídajících rozhraní položek hostitele v sadě Visual Studio Tools for Office runtime . Pokud například voláte Protect metodu
ThisDocument
třídy, DocumentBase třída přesměruje toto volání na interní implementaci Document rozhraní v sadě Visual Studio Tools for Office runtime .
Přístup k objektovém modelu hostitelské aplikace
Pokud chcete získat přístup k objektového modelu hostitelské aplikace, použijte členy vygenerované třídy v projektu. Každá z těchto tříd odpovídá objektu v objektovém modelu aplikace Excel nebo Word a obsahují většinu stejných vlastností, metod a událostí. Například ThisDocument
třída v projektu na úrovni dokumentu pro Word poskytuje většinu stejných členů jako Document objekt v objektovém modelu Wordu.
Následující příklad kódu ukazuje, jak pomocí objektového modelu Aplikace Word uložit dokument, který je součástí přizpůsobení na úrovni dokumentu pro Word. Tento příklad je určen ke spuštění ze ThisDocument
třídy.
Chcete-li provést totéž zvnějšku ThisDocument
třídy, použijte Globals
objekt pro přístup ThisDocument
ke třídě. Tento kód můžete například přidat do souboru kódu podokna akcí, pokud chcete do uživatelského rozhraní podokna akcí zahrnout tlačítko Uložit .
Vzhledem k tomu, že ThisDocument
třída získává většinu svých členů z Document položky hostitele, Save
metoda, která je volána v tomto kódu je skutečně Save metoda Document hostitelské položky. Tato metoda odpovídá Save metodě objektu Document v objektovém modelu aplikace Word.
Další informace o používání objektových modelů wordových a excelových modelů najdete v přehledu objektového modelu Wordu a přehledu objektového modelu Excelu.
Další informace o objektu Globals
naleznete v tématu Globální přístup k objektům v projektech Office.
Přidání ovládacích prvků do dokumentů
Pokud chcete přizpůsobit uživatelské rozhraní dokumentu, můžete na plochu dokumentu přidat model Windows Forms ovládací prvky nebo hostitelské ovládací prvky. Kombinací různých sad ovládacích prvků a psaní kódu můžete svázat ovládací prvky s daty, shromažďovat informace od uživatele a reagovat na akce uživatele.
Hostitelské ovládací prvky jsou třídy, které rozšiřují některé objekty v objektovém modelu Aplikace Word a Excel. Například ListObject ovládací prvek hostitele poskytuje všechny funkce v Excelu ListObject . ListObject Ovládací prvek hostitele má ale také další události a možnosti datové vazby.
Další informace najdete v tématu Přehled položek hostitele a ovládacích prvků hostitelů a ovládacích prvků Windows Forms v dokumentech Office.
Kombinování přizpůsobení na úrovni dokumentu a jazyka VBA
Kód jazyka VBA můžete použít v dokumentu, který je součástí přizpůsobení na úrovni dokumentu. Kód jazyka VBA v dokumentu můžete volat z sestavení přizpůsobení a můžete také nakonfigurovat projekt tak, aby v dokumentu povolil kód jazyka VBA pro volání kódu v sestavení přizpůsobení.
Další informace najdete v tématu Kombinování přizpůsobení jazyka VBA a na úrovni dokumentu.
Správa dokumentů na serveru
Na serveru, který nemá nainstalované systém Microsoft Office Wordu nebo systém Microsoft Office Excelu, můžete spravovat několik různých aspektů přizpůsobení na úrovni dokumentu. Můžete například přistupovat k datům v mezipaměti dat dokumentu a upravovat je. Můžete také spravovat sestavení přizpůsobení přidružené k dokumentu. Sestavení můžete například z dokumentu programově odebrat, aby dokument už nespustí váš kód, nebo můžete k dokumentu programově připojit sestavení.
Další informace naleznete v tématu Správa dokumentů na serveru pomocí Třídy ServerDocument.
Přizpůsobení uživatelského rozhraní aplikací systém Microsoft Office
Uživatelské rozhraní Wordu a Excelu můžete přizpůsobit následujícími způsoby pomocí přizpůsobení na úrovni dokumentu:
Přidejte ovládací prvky hostitele nebo ovládací prvky model Windows Forms na plochu dokumentu.
Další informace najdete v tématu Automatizace wordu pomocí rozšířených objektů, automatizace Excelu pomocí rozšířených objektů a model Windows Forms ovládacích prvků v dokumentech Office s přehledem.
Přidejte do dokumentu podokno akcí.
Další informace najdete v tématu Přehled podokna Akce.
Přidání vlastních karet na pás karet
Další informace najdete v přehledu pásu karet.
Přidání vlastních skupin na integrovanou kartu na pásu karet
Další informace naleznete v tématu Postupy: Přizpůsobení předdefinované karty.
Další informace o přizpůsobení uživatelského rozhraní aplikací systém Microsoft Office naleznete v tématu Přizpůsobení uživatelského rozhraní Office.
Získání rozšířených objektů z nativních objektů Office v přizpůsobení na úrovni dokumentu
Mnoho obslužných rutin událostí pro události Office obdrží nativní objekt Office, který představuje sešit, list nebo dokument, který vyvolal událost. V některých případech můžete chtít spustit nějaký kód jenom v případě, že sešit nebo dokument v přizpůsobení na úrovni dokumentu vyvolal událost. Například v přizpůsobení na úrovni dokumentu pro Excel můžete chtít spustit nějaký kód, když uživatel aktivuje jeden z listů v přizpůsobeném sešitu, ale ne, když uživatel aktivuje list v jiném sešitu, který se stane otevřený ve stejnou dobu.
Pokud máte nativní objekt Office, můžete otestovat, jestli byl tento objekt rozšířen na položku hostitele nebo ovládací prvek hostitele v přizpůsobení na úrovni dokumentu. Hostitelské položky a ovládací prvky hostitele jsou typy poskytované modulem runtime Visual Studio Tools for Office, které přidávají funkce k objektům, které existují nativně v objektových modelech Wordu nebo Excelu (označované jako nativní objekty Office). Souhrnně se položky hostitele a hostitelské ovládací prvky označují také jako rozšířené objekty. Další informace o hostitelských položkách a ovládacích prvcích hostitelů najdete v tématu Přehled položek hostitele a hostitelských ovládacích prvků.
Vysvětlení metod GetVstoObject a HasVstoObject
K otestování nativního objektu Office použijte v projektu tyto HasVstoObject
metody GetVstoObject
:
Tuto metodu
HasVstoObject
použijte, pokud chcete zjistit, jestli má nativní objekt Office rozšířený objekt ve vašem přizpůsobení. Tato metoda vrátí hodnotu true , pokud má nativní objekt Office rozšířený objekt a jinak false .Tuto metodu
GetVstoObject
použijte, pokud chcete získat rozšířený objekt pro nativní objekt Office. Tato metoda vrátí ListObjectobjekt , , WorksheetWorkbooknebo Document objekt, pokud zadaný nativní objekt Office má jeden.GetVstoObject
V opačném případě vrátí hodnotu null. Metoda napříkladGetVstoObject
vrátí Document , pokud je zadaným Document objektem podkladový objekt pro dokument v projektu wordového dokumentu.V projektech na úrovni dokumentu nelze metodu
GetVstoObject
použít k vytvoření nové Workbook, Worksheetnebo Document hostitelské položky za běhu. Tuto metodu můžete použít pouze pro přístup k existujícím hostitelským položkám vygenerovaným v projektu v době návrhu. Pokud chcete vytvářet nové hostitelské položky za běhu, musíte vytvořit projekt doplňku VSTO. Další informace naleznete v tématu Programová omezení hostitelských položek a hostitelských ovládacích prvků a rozšíření wordových dokumentů a excelových sešitů v doplňkech VSTO za běhu.
Použití metod GetVstoObject a HasVstoObject
K volání a GetVstoObject
metody použijte metodu HasVstoObject
nebo Globals.Factory.HasVstoObject
metodu Globals.Factory.GetVstoObject
a předejte nativní objekt aplikace Word nebo Excel (například Document neboWorksheet), který chcete otestovat.