Práce s makry VBA v dokumentech Word pomocí Python

Visual Basic for Applications (VBA) je výkonný programovací jazyk, který umožňuje automatizovat úlohy v dokumentech aplikace Word. Navíc můžete s makry VBA poměrně snadno provádět opakující se úkoly. V tomto článku se dozvíte, jak pracovat s projekty a moduly VBA v dokumentech MS Word. Konkrétně se tento článek bude zabývat tím, jak vytvářet, upravovat a klonovat makra VBA programově v Python.

Knihovna Python pro práci s makry MS Word VBA

Pro práci s makry VBA v souborech Word použijeme Aspose.Words for Python. Je to výkonná knihovna pro vytváření a manipulaci s dokumenty Word z aplikací Python. Knihovnu do své aplikace můžete nainstalovat z PyPI pomocí následujícího příkazu pip.

pip install aspose-words

Vytvořte makro VBA v dokumentu MS Word v Python

Následují kroky k vytvoření makra VBA v souboru MS Word DOCM pomocí Python.

  • Načtěte dokument aplikace Word nebo vytvořte nový pomocí třídy Document.
  • Vytvořte objekt třídy VbaProject.
  • Nastavte název projektu pomocí vlastnosti VbaProject.name.
  • Přiřaďte projekt vlastnosti Document.vbaproject.
  • Vytvořte objekt třídy VbaModule.
  • Nastavte název a typ modulu pomocí vlastností VbaModule.name a VbaModule.type.
  • Nastavte zdrojový kód pomocí vlastnosti VbaModule.sourcecode.
  • Přidejte modul do projektu VBA dokumentu pomocí metody Document.vbaproject.modules.add(VbaModule).
  • Uložte dokument pomocí metody Document.save().

Následující ukázka kódu ukazuje, jak vytvořit makro VBA v dokumentu DOCM pomocí Python.

import aspose.words as aw

# Načíst dokument aplikace Word.
doc = aw.Document("document.docm")

# Vytvořte projekt VBA
project = aw.vba.VbaProject()
project.name = "AsposeProject"
doc.vba_project = project

# Vytvořte nový modul a zadejte zdrojový kód makra.
module = aw.vba.VbaModule()
module.name = "AsposeModule"
module.type = aw.vba.VbaModuleType.PROCEDURAL_MODULE
module.source_code = "New source code"

# Přidejte modul do projektu VBA.
doc.vba_project.modules.add(module)

# Uložit dokument.
doc.save("create_vba_project.docm")

Upravte makro VBA v dokumentu aplikace Word v Python

Můžete také bezproblémově přistupovat a upravovat stávající makra VBA v dokumentech aplikace Word. Následující kroky ukazují, jak toho dosáhnout pomocí Aspose.Words for Python.

  • Načtěte dokument aplikace Word pomocí třídy Document.
  • Získejte odkaz na VbaProject do objektu pomocí vlastnosti Document.vbaproject.
  • Otevřete požadovaný modul VBA pomocí indexu a aktualizujte jeho zdrojový kód pomocí vlastnosti VbaProject.modules[int].sourcecode.
  • Uložte dokument pomocí metody Document.save().

Následující ukázka kódu ukazuje, jak upravit existující makro MS Word VBA pomocí Python.

import aspose.words as aw

# Načíst dokument aplikace Word.
doc = aw.Document("document.docm")

# Získejte reference projektu VBA.
project = doc.vba_project

# Aktualizujte zdrojový kód.
newSourceCode = "Test change source code"
project.modules[0].source_code = newSourceCode
    
# Uložit dokument.
doc.save("modify_vba_macros.docm")

Klonujte makro VBA do dokumentu aplikace Word pomocí Python

V určitých případech může být nutné naklonovat modul VBA nebo celý projekt VBA z jednoho dokumentu aplikace Word do druhého. Abyste toho dosáhli, Aspose.Words for Python vám umožňuje poměrně snadno vytvářet klony. Následující části popisují, jak klonovat modul VBA nebo projekt VBA.

Naklonujte modul VBA

Následují kroky k vytvoření klonu modulu VBA z jednoho dokumentu DOCM do druhého pomocí Python.

  • Načtěte zdrojový dokument aplikace Word pomocí třídy Document.
  • Načtěte cílový dokument aplikace Word pomocí třídy Document.
  • Vytvořte VbaProject pro cílový dokument aplikace Word.
  • Získejte klon modulu VBA ze zdrojového dokumentu aplikace Word do objektu pomocí metody Document.vbaproject.modules.getbyname(string).clone().
  • Přidejte klonovaný modul do cílového dokumentu pomocí metody Document.vbaproject.modules.add(VbaModule).
  • Uložte cílový dokument pomocí metody Document.save().

Následující ukázka kódu ukazuje, jak klonovat modul MS Word VBA v Python.

import aspose.words as aw

# Načtěte zdrojový dokument Word.
doc = aw.Document("document.docm")

# Načíst cílový dokument Word.
destDoc = aw.Document("dest_document.docm")
destDoc.vba_project = aw.vba.VbaProject() 

# Klonovat modul VBA.
copyModule = doc.vba_project.modules.get_by_name("Module1").clone()
destDoc.vba_project.modules.add(copyModule)

# Uložit dokument.
destDoc.save("clone_vba_module.docm")

Klonujte projekt VBA

Níže jsou uvedeny kroky ke klonování projektu MS Word VBA v Python.

  • Načtěte zdrojový dokument aplikace Word pomocí třídy Document.
  • Načtěte cílový dokument aplikace Word pomocí třídy Document.
  • Získejte klon projektu VBA ze zdrojového dokumentu pomocí metody Document.vbaproject.clone() a přidejte jej do cílového dokumentu pomocí vlastnosti Document.vbaproject.
  • Uložte cílový dokument pomocí metody Document.save().

Následující ukázka kódu ukazuje, jak klonovat projekt VBA z jednoho dokumentu aplikace Word do jiného v Python.

import aspose.words as aw

# Načtěte zdrojový dokument Word.
doc = aw.Document("document.docm")

# Načíst cílový dokument Word.
destDoc = aw.Document("dest_document.docm")

# Klonovat projekt VBA.
destDoc.vba_project = doc.vba_project.clone() 

# Uložit dokument.
destDoc.save("clone_vba_module.docm")

Získejte bezplatnou licenci API

Můžete získat dočasnou licenci k používání Aspose.Words for Python bez omezení hodnocení.

Závěr

V tomto článku jste se naučili vytvářet makra VBA v dokumentech MS Word pomocí Python. Navíc jste viděli, jak programově upravit nebo klonovat existující moduly nebo projekty VBA. Kromě toho můžete prozkoumat další funkce Aspose.Words for Python pomocí dokumentace. V případě jakýchkoli dotazů nás neváhejte kontaktovat prostřednictvím našeho fóra.

Viz také

Informace: Pokud někdy potřebujete získat dokument aplikace Word z prezentace v PowerPointu, můžete použít převodník Aspose Presentation to Word Document.