Visual Basic para Aplicaciones (VBA) es un poderoso lenguaje de programación que le permite automatizar tareas en documentos de Word. Además, puede realizar tareas repetitivas con macros de VBA con bastante facilidad. En este artículo, aprenderá a trabajar con proyectos y módulos de VBA en documentos de MS Word. En particular, el artículo cubrirá cómo crear, modificar y clonar macros de VBA mediante programación en Python.
- Biblioteca de Python para trabajar con macros VBA de MS Word
- Crear macro VBA en un documento de MS Word
- Modificar macro VBA en un documento de Word
- Clonar macro VBA en un documento de Word
Biblioteca de Python para trabajar con macros VBA de MS Word
Para trabajar con macros VBA en archivos de Word, usaremos Aspose.Words for Python. Es una poderosa biblioteca para crear y manipular documentos de Word desde aplicaciones de Python. Puede instalar la biblioteca en su aplicación desde PyPI usando el siguiente comando pip.
pip install aspose-words
Crear macro VBA en un documento de MS Word en Python
Los siguientes son los pasos para crear una macro VBA en un archivo DOCM de MS Word usando Python.
- Cargue el documento de Word o cree uno nuevo usando la clase Document.
- Cree un objeto de la clase VbaProject.
- Establezca el nombre del proyecto usando la propiedad VbaProject.name.
- Asigne el proyecto a la propiedad Document.vba\project.
- Cree un objeto de la clase VbaModule.
- Establezca el nombre y el tipo de módulo mediante las propiedades VbaModule.name y VbaModule.type, respectivamente.
- Establezca el código fuente usando la propiedad VbaModule.source\code.
- Agregue el módulo al proyecto VBA del documento usando el método Document.vba\project.modules.add(VbaModule).
- Guarde el documento usando el método Document.save().
El siguiente ejemplo de código muestra cómo crear una macro VBA en 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")
Modificar macro VBA en un documento de Word en Python
También puede acceder y modificar las macros de VBA existentes en documentos de Word sin problemas. Los siguientes pasos demuestran cómo lograr esto usando Aspose.Words for Python.
- Cargue el documento de Word usando la clase Document.
- Obtenga la referencia de VbaProject en un objeto usando la propiedad Document.vba\project.
- Acceda al módulo VBA deseado usando el índice y actualice su código fuente usando la propiedad VbaProject.modules[int].source\code.
- Guarde el documento usando el método Document.save().
El siguiente ejemplo de código muestra cómo modificar una macro VBA de MS Word existente mediante 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")
Clonar macro VBA en un documento de Word usando Python
En ciertos casos, es posible que deba clonar un módulo de VBA o todo el proyecto de VBA de un documento de Word a otro. Para lograr esto, Aspose.Words for Python le permite crear clones con bastante facilidad. Las siguientes secciones cubren cómo clonar un módulo VBA o un proyecto VBA.
Clonar un módulo VBA
Los siguientes son los pasos para crear un clon de un módulo VBA de un documento DOCM a otro usando Python.
- Cargue el documento de Word de origen utilizando la clase Document.
- Cargue el documento de Word de destino utilizando la clase Document.
- Cree un VbaProject para el documento de Word de destino.
- Obtenga un clon del módulo VBA del documento de Word de origen en un objeto usando el método Document.vba\project.modules.get_by\name(string).clone().
- Agregue el módulo clonado al documento de destino mediante el método Document.vba\project.modules.add(VbaModule).
- Guarde el documento de destino utilizando el método Document.save().
El siguiente ejemplo de código muestra cómo clonar un módulo VBA de MS Word en 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")
Clonar un proyecto VBA
Los siguientes son los pasos para clonar un proyecto de MS Word VBA en Python.
- Cargue el documento de Word de origen utilizando la clase Document.
- Cargue el documento de Word de destino utilizando la clase Document.
- Obtenga un clon del proyecto VBA del documento de origen usando el método Document.vba\project.clone() y agréguelo al documento de destino usando la propiedad Document.vba\project.
- Guarde el documento de destino utilizando el método Document.save().
El siguiente ejemplo de código muestra cómo clonar un proyecto de VBA de un documento de Word a otro en 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")
Obtenga una licencia de API gratuita
Puede obtener una licencia temporal para usar Aspose.Words for Python sin limitaciones de evaluación.
Conclusión
En este artículo, ha aprendido a crear macros de VBA en documentos de MS Word utilizando Python. Además, ha visto cómo modificar o clonar módulos o proyectos de VBA existentes mediante programación. Además, puede explorar otras características de Aspose.Words for Python utilizando la documentación. En caso de que tenga alguna pregunta, no dude en hacérnosla saber a través de nuestro foro.
Ver también
- Crear documentos de MS Word usando Python
- Convertir documento de Word a HTML usando Python
- Convierta documentos de Word a PNG, JPEG o BMP en Python
- Documentos de Word a Markdown usando Python
- Compara dos documentos de Word en Python
Información: si alguna vez necesita obtener un documento de Word de una presentación de PowerPoint, puede usar el convertidor Aspose Presentación a documento de Word.