Praca z makrami VBA w dokumentach programu Word przy użyciu języka Python

Visual Basic for Applications (VBA) to potężny język programowania, który umożliwia automatyzację zadań w dokumentach programu Word. Co więcej, możesz dość łatwo wykonywać powtarzalne zadania za pomocą makr VBA. W tym artykule dowiesz się, jak pracować z projektami i modułami VBA w dokumentach MS Word. W szczególności artykuł omówi, jak programowo tworzyć, modyfikować i klonować makra VBA w Python.

Biblioteka Python do pracy z makrami MS Word VBA

Do pracy z makrami VBA w plikach Word użyjemy Aspose.Words for Python. Jest to potężna biblioteka do tworzenia i manipulowania dokumentami Word z poziomu aplikacji Python. Możesz zainstalować bibliotekę w swojej aplikacji z PyPI za pomocą następującego polecenia pip.

pip install aspose-words

Utwórz makro VBA w dokumencie MS Word w Python

Poniżej przedstawiono kroki tworzenia makra VBA w pliku MS Word DOCM przy użyciu języka Python.

  • Załaduj dokument programu Word lub utwórz nowy przy użyciu klasy Document.
  • Utwórz obiekt klasy VbaProject.
  • Ustaw nazwę projektu za pomocą właściwości VbaProject.name.
  • Przypisz projekt do właściwości Document.vbaproject.
  • Utwórz obiekt klasy VbaModule.
  • Ustaw nazwę i typ modułu, używając odpowiednio właściwości VbaModule.name i VbaModule.type.
  • Ustaw kod źródłowy za pomocą właściwości VbaModule.sourcecode.
  • Dodaj moduł do projektu VBA dokumentu za pomocą metody Document.vbaproject.modules.add(VbaModule).
  • Zapisz dokument za pomocą metody Document.save().

Poniższy przykładowy kod pokazuje, jak utworzyć makro VBA w dokumencie DOCM przy użyciu języka Python.

import aspose.words as aw

# Załaduj dokument Worda.
doc = aw.Document("document.docm")

# Utwórz projekt VBA
project = aw.vba.VbaProject()
project.name = "AsposeProject"
doc.vba_project = project

# Utwórz nowy moduł i określ kod źródłowy makra.
module = aw.vba.VbaModule()
module.name = "AsposeModule"
module.type = aw.vba.VbaModuleType.PROCEDURAL_MODULE
module.source_code = "New source code"

# Dodaj moduł do projektu VBA.
doc.vba_project.modules.add(module)

# Zapisz dokument.
doc.save("create_vba_project.docm")

Zmodyfikuj makro VBA w dokumencie programu Word w Python

Możesz także bezproblemowo uzyskiwać dostęp i modyfikować istniejące makra VBA w dokumentach Word. Poniższe kroki pokazują, jak to osiągnąć przy użyciu Aspose.Words dla języka Python.

  • Załaduj dokument programu Word przy użyciu klasy Document.
  • Uzyskaj odniesienie VbaProject do obiektu za pomocą właściwości Document.vbaproject.
  • Uzyskaj dostęp do żądanego modułu VBA za pomocą indeksu i zaktualizuj jego kod źródłowy za pomocą właściwości VbaProject.modules[int].sourcecode.
  • Zapisz dokument za pomocą metody Document.save().

Poniższy przykładowy kod pokazuje, jak zmodyfikować istniejące makro MS Word VBA przy użyciu języka Python.

import aspose.words as aw

# Załaduj dokument Worda.
doc = aw.Document("document.docm")

# Uzyskaj odniesienie do projektu VBA.
project = doc.vba_project

# Zaktualizuj kod źródłowy.
newSourceCode = "Test change source code"
project.modules[0].source_code = newSourceCode
    
# Zapisz dokument.
doc.save("modify_vba_macros.docm")

Sklonuj makro VBA w dokumencie programu Word za pomocą Python

W niektórych przypadkach może być konieczne sklonowanie modułu VBA lub całego projektu VBA z jednego dokumentu programu Word do innego. Aby to osiągnąć, Aspose.Words for Python pozwala dość łatwo tworzyć klony. W poniższych sekcjach opisano, jak sklonować moduł VBA lub projekt VBA.

Sklonuj moduł VBA

Poniżej przedstawiono kroki tworzenia klonu modułu VBA z jednego dokumentu DOCM do innego za pomocą Python.

  • Załaduj źródłowy dokument programu Word przy użyciu klasy Document.
  • Załaduj docelowy dokument programu Word przy użyciu klasy Document.
  • Utwórz projekt Vba dla docelowego dokumentu programu Word.
  • Pobierz klon modułu VBA ze źródłowego dokumentu Worda do obiektu za pomocą metody Document.vbaproject.modules.getbyname(string).clone() .
  • Dodaj sklonowany moduł do dokumentu docelowego przy użyciu metody Document.vbaproject.modules.add(VbaModule).
  • Zapisz dokument docelowy za pomocą metody Document.save().

Poniższy przykładowy kod pokazuje, jak sklonować moduł MS Word VBA w języku Python.

import aspose.words as aw

# Załaduj źródłowy dokument Word.
doc = aw.Document("document.docm")

# Załaduj docelowy dokument programu Word.
destDoc = aw.Document("dest_document.docm")
destDoc.vba_project = aw.vba.VbaProject() 

# Sklonuj moduł VBA.
copyModule = doc.vba_project.modules.get_by_name("Module1").clone()
destDoc.vba_project.modules.add(copyModule)

# Zapisz dokument.
destDoc.save("clone_vba_module.docm")

Sklonuj projekt VBA

Poniżej przedstawiono kroki sklonowania projektu MS Word VBA w Python.

  • Załaduj źródłowy dokument programu Word przy użyciu klasy Document.
  • Załaduj docelowy dokument programu Word przy użyciu klasy Document.
  • Pobierz klon projektu VBA z dokumentu źródłowego za pomocą metody Document.vbaproject.clone() i dodaj go do dokumentu docelowego za pomocą właściwości Document.vbaproject.
  • Zapisz dokument docelowy za pomocą metody Document.save().

Poniższy przykładowy kod pokazuje, jak sklonować projekt VBA z jednego dokumentu programu Word do innego w języku Python.

import aspose.words as aw

# Załaduj źródłowy dokument Word.
doc = aw.Document("document.docm")

# Załaduj docelowy dokument programu Word.
destDoc = aw.Document("dest_document.docm")

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

# Zapisz dokument.
destDoc.save("clone_vba_module.docm")

Uzyskaj bezpłatną licencję API

Możesz uzyskać tymczasową licencję na używanie Aspose.Words for Python bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule nauczyłeś się tworzyć makra VBA w dokumentach MS Word za pomocą Python. Ponadto widziałeś, jak programowo modyfikować lub klonować istniejące moduły lub projekty VBA. Ponadto możesz poznać inne funkcje Aspose.Words for Python, korzystając z dokumentacji. Jeśli masz jakieś pytania, daj nam znać za pośrednictwem naszego forum.

Zobacz też

Informacje: Jeśli kiedykolwiek będziesz potrzebował pobrać dokument Word z prezentacji PowerPoint, możesz użyć konwertera Aspose Presentation to Word Document.