Visual Basic for Applications (VBA) è un potente linguaggio di programmazione che ti consente di automatizzare le attività nei documenti di Word. Inoltre, puoi eseguire facilmente attività ripetitive con le macro VBA. In questo articolo imparerai come lavorare con progetti e moduli VBA nei documenti MS Word. In particolare, l’articolo tratterà come creare, modificare e clonare macro VBA a livello di codice in Python.
- Libreria Python per lavorare con le macro VBA di MS Word
- Crea macro VBA in un documento MS Word
- Modifica la macro VBA in un documento di Word
- Clona la macro VBA in un documento di Word
Libreria Python per lavorare con le macro VBA di MS Word
Per lavorare con le macro VBA nei file di Word, utilizzeremo Aspose.Words for Python. È una potente libreria per creare e manipolare documenti Word dall’interno delle applicazioni Python. Puoi installare la libreria nella tua applicazione da PyPI usando il seguente comando pip.
pip install aspose-words
Crea macro VBA in un documento MS Word in Python
Di seguito sono riportati i passaggi per creare una macro VBA in un file MS Word DOCM utilizzando Python.
- Carica il documento di Word o creane uno nuovo usando la classe Document.
- Crea un oggetto della classe VbaProject.
- Impostare il nome del progetto utilizzando la proprietà VbaProject.name.
- Assegna il progetto alla proprietà Document.vbaproject.
- Crea un oggetto della classe VbaModule.
- Impostare il nome e il tipo di modulo utilizzando rispettivamente le proprietà VbaModule.name e VbaModule.type.
- Impostare il codice sorgente utilizzando la proprietà VbaModule.sourcecode.
- Aggiungi modulo al progetto VBA del documento utilizzando il metodo Document.vbaproject.modules.add(VbaModule).
- Salva il documento usando il metodo Document.save().
L’esempio di codice seguente mostra come creare una macro VBA in un documento DOCM usando Python.
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")
Modifica la macro VBA in un documento di Word in Python
Puoi anche accedere e modificare senza problemi le macro VBA esistenti nei documenti di Word. I passaggi seguenti mostrano come ottenere questo risultato usando Aspose.Words per Python.
- Carica il documento di Word usando la classe Document.
- Ottieni il riferimento di VbaProject in un oggetto usando la proprietà Document.vbaproject.
- Accedi al modulo VBA desiderato usando index e aggiorna il suo codice sorgente usando la proprietà VbaProject.modules[int].sourcecode.
- Salva il documento usando il metodo Document.save().
L’esempio di codice seguente mostra come modificare una macro VBA di MS Word esistente usando Python.
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")
Clona la macro VBA in un documento di Word usando Python
In alcuni casi, potrebbe essere necessario clonare un modulo VBA o l’intero progetto VBA da un documento Word a un altro. Per raggiungere questo obiettivo, Aspose.Words per Python ti consente di creare cloni abbastanza facilmente. Le sezioni seguenti illustrano come clonare un modulo VBA o un progetto VBA.
Clona un modulo VBA
Di seguito sono riportati i passaggi per creare un clone di un modulo VBA da un documento DOCM a un altro utilizzando Python.
- Carica il documento Word di origine utilizzando la classe Document.
- Carica il documento Word di destinazione utilizzando la classe Document.
- Crea un VbaProject per il documento Word di destinazione.
- Ottieni il clone del modulo VBA dal documento Word di origine in un oggetto usando il metodo Document.vbaproject.modules.getbyname(string).clone().
- Aggiungi il modulo clonato nel documento di destinazione utilizzando il metodo Document.vbaproject.modules.add(VbaModule).
- Salva il documento di destinazione utilizzando il metodo Document.save().
L’esempio di codice seguente mostra come clonare un modulo VBA di MS Word in Python.
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")
Clona un progetto VBA
Di seguito sono riportati i passaggi per clonare un progetto VBA di MS Word in Python.
- Carica il documento Word di origine utilizzando la classe Document.
- Carica il documento Word di destinazione utilizzando la classe Document.
- Ottieni il clone del progetto VBA dal documento di origine utilizzando il metodo Document.vbaproject.clone() e aggiungilo al documento di destinazione utilizzando la proprietà Document.vbaproject.
- Salva il documento di destinazione utilizzando il metodo Document.save().
L’esempio di codice seguente mostra come clonare un progetto VBA da un documento di Word a un altro in Python.
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")
Ottieni una licenza API gratuita
Puoi ottenere una licenza temporanea per utilizzare Aspose.Words per Python senza limitazioni di valutazione.
Conclusione
In questo articolo, hai imparato come creare macro VBA in documenti MS Word usando Python. Inoltre, hai visto come modificare o clonare moduli o progetti VBA esistenti a livello di codice. Inoltre, puoi esplorare altre funzionalità di Aspose.Words per Python usando la documentazione. In caso di domande, non esitare a farcelo sapere tramite il nostro forum.
Guarda anche
- Crea documenti MS Word usando Python
- Converti documento Word in HTML usando Python
- Converti documenti Word in PNG, JPEG o BMP in Python
- Documenti Word su Markdown usando Python
- Confronta due documenti Word in Python
Informazioni: se hai bisogno di ottenere un documento Word da una presentazione PowerPoint, puoi utilizzare il convertitore Aspose Presentazione in documento Word.