Arbeiten Sie mit VBA Makros in Word Dokumenten mit Python

Visual Basic for Applications (VBA) ist eine leistungsstarke Programmiersprache, mit der Sie Aufgaben in Word Dokumenten automatisieren können. Darüber hinaus können Sie sich wiederholende Aufgaben mit VBA Makros ganz einfach ausführen. In diesem Artikel erfahren Sie, wie Sie mit VBA Projekten und Modulen in MS Word Dokumenten arbeiten. Insbesondere behandelt der Artikel das programmgesteuerte Erstellen, Ändern und Klonen von VBA Makros in Python.

Python Bibliothek zum Arbeiten mit MS Word VBA Makros

Um mit VBA Makros in Word Dateien zu arbeiten, verwenden wir Aspose.Words for Python. Es ist eine leistungsstarke Bibliothek zum Erstellen und Bearbeiten von Word Dokumenten aus Python Anwendungen heraus. Sie können die Bibliothek in Ihrer Anwendung von PyPI mit dem folgenden Pip Befehl installieren.

pip install aspose-words

Erstellen Sie ein VBA Makro in einem MS Word Dokument in Python

Im Folgenden sind die Schritte zum Erstellen eines VBA Makros in einer MS Word-DOCM Datei mit Python aufgeführt.

  • Laden Sie das Word Dokument oder erstellen Sie ein neues mit der Document Klasse.
  • Erstellen Sie ein Objekt der VbaProject Klasse.
  • Legen Sie den Namen des Projekts mit der Eigenschaft VbaProject.name fest.
  • Weisen Sie das Projekt der Eigenschaft Document.vba\project zu.
  • Erstellen Sie ein Objekt der Klasse VbaModule.
  • Legen Sie den Namen und Typ des Moduls mit den Eigenschaften VbaModule.name bzw. VbaModule.type fest.
  • Legen Sie den Quellcode mit der Eigenschaft VbaModule.source\code fest.
  • Fügen Sie mithilfe der Methode Document.vba\project.modules.add(VbaModule) ein Modul zum VBA Projekt des Dokuments hinzu.
  • Speichern Sie das Dokument mit der methode Document.save().

Das folgende Codebeispiel zeigt, wie Sie mit Python ein VBA Makro in einem DOCM-Dokument erstellen.

import aspose.words as aw

# Load Word document.
doc = aw.Document("document.docm")

# Create VBA project
project = aw.vba.VbaProject()
project.name = "AsposeProject"
doc.vba_project = project

# Create a new module and specify a macro source code.
module = aw.vba.VbaModule()
module.name = "AsposeModule"
module.type = aw.vba.VbaModuleType.PROCEDURAL_MODULE
module.source_code = "New source code"

# Add module to the VBA project.
doc.vba_project.modules.add(module)

# Save document.
doc.save("create_vba_project.docm")

Ändern Sie das VBA Makro in einem Word Dokument in Python

Sie können auch nahtlos auf die vorhandenen VBA Makros in Word Dokumenten zugreifen und diese ändern. Die folgenden Schritte zeigen, wie Sie dies mit Aspose.Words for Python erreichen.

  • Laden Sie das Word Dokument mithilfe der Document Klasse.
  • Rufen Sie mithilfe der Eigenschaft Document.vba\project den Verweis auf das VbaProject in ein Objekt ab.
  • Greifen Sie über index auf das gewünschte VBA-Modul zu und aktualisieren Sie seinen Quellcode mit der Eigenschaft VbaProject.modules[int].source\code.
  • Speichern Sie das Dokument mit der methode Document.save().

Das folgende Codebeispiel zeigt, wie Sie ein vorhandenes MS Word-VBA Makro mit Python ändern.

import aspose.words as aw

# Load Word document.
doc = aw.Document("document.docm")

# Get reference of VBA project.
project = doc.vba_project

# Update source code.
newSourceCode = "Test change source code"
project.modules[0].source_code = newSourceCode
    
# Save document.
doc.save("modify_vba_macros.docm")

Klonen Sie ein VBA Makro in einem Word Dokument mit Python

In bestimmten Fällen müssen Sie möglicherweise ein VBA-Modul oder das gesamte VBA Projekt von einem Word Dokument in ein anderes klonen. Um dies zu erreichen, können Sie mit Aspose.Words for Python ganz einfach Klone erstellen. In den folgenden Abschnitten wird beschrieben, wie Sie ein VBA-Modul oder ein VBA Projekt klonen.

Klonen Sie ein VBA-Modul

Im Folgenden sind die Schritte zum Erstellen eines Klons eines VBA-Moduls von einem DOCM-Dokument zu einem anderen mit Python aufgeführt.

  • Laden Sie das Word-Quelldokument mithilfe der Document Klasse.
  • Laden Sie das Ziel-Word Dokument mithilfe der Document Klasse.
  • Erstellen Sie ein VbaProject für das Word-Zieldokument.
  • Holen Sie den Klon des VBA-Moduls aus dem Word-Quelldokument in ein Objekt, indem Sie die Methode Document.vba\project.modules.get\by\name(string).clone() verwenden.
  • Fügen Sie das geklonte Modul mithilfe der Methode Document.vba\project.modules.add(VbaModule) zum Zieldokument hinzu.
  • Speichern Sie das Zieldokument mit der methode Document.save().

Das folgende Codebeispiel zeigt, wie Sie ein MS Word-VBA-Modul in Python klonen.

import aspose.words as aw

# Load source Word document.
doc = aw.Document("document.docm")

# Load destination Word document.
destDoc = aw.Document("dest_document.docm")
destDoc.vba_project = aw.vba.VbaProject() 

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

# Save document.
destDoc.save("clone_vba_module.docm")

Klonen Sie ein VBA Projekt

Im Folgenden sind die Schritte zum Klonen eines MS Word-VBA Projekts in Python aufgeführt.

  • Laden Sie das Word-Quelldokument mithilfe der Document Klasse.
  • Laden Sie das Ziel-Word Dokument mithilfe der Document Klasse.
  • Rufen Sie den Klon des VBA Projekts aus dem Quelldokument mit der methode Document.vba\project.clone() ab und fügen Sie ihn mit der Eigenschaft Document.vba\project zum Zieldokument hinzu.
  • Speichern Sie das Zieldokument mit der methode Document.save().

Das folgende Codebeispiel zeigt, wie Sie in Python ein VBA Projekt von einem Word Dokument in ein anderes klonen.

import aspose.words as aw

# Load source Word document.
doc = aw.Document("document.docm")

# Load destination Word document.
destDoc = aw.Document("dest_document.docm")

# Clone VBA project.
destDoc.vba_project = doc.vba_project.clone() 

# Save document.
destDoc.save("clone_vba_module.docm")

Holen Sie sich eine kostenlose API Lizenz

Sie können eine vorübergehende Lizenz erwerben, um Aspose.Words for Python ohne Evaluierungseinschränkungen zu verwenden.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mit Python VBA Makros in MS Word Dokumenten erstellen. Darüber hinaus haben Sie gesehen, wie Sie vorhandene VBA-Module oder Projekte programmgesteuert ändern oder klonen können. Darüber hinaus können Sie weitere Funktionen von Aspose.Words for Python mithilfe der Dokumentation erkunden. Falls Sie Fragen haben, können Sie uns diese gerne über unser Forum mitteilen.

Siehe auch

Info: Wenn Sie jemals ein Word Dokument aus einer PowerPoint Präsentation erhalten müssen, können Sie den Konverter Aspose Presentation to Word Document verwenden.