Visual Basic для приложений (VBA) — это мощный язык программирования, который позволяет автоматизировать задачи в документах Word. Более того, вы можете легко выполнять повторяющиеся задачи с помощью макросов VBA. В этой статье вы узнаете, как работать с проектами и модулями VBA в документах MS Word. В частности, в статье будет рассказано, как программно создавать, изменять и клонировать макросы VBA в Python.
- Библиотека Python для работы с макросами MS Word VBA
- Создайте макрос VBA в документе MS Word
- Изменить макрос VBA в документе Word
- Клонировать макрос VBA в документе Word
Библиотека Python для работы с макросами MS Word VBA
Для работы с макросами VBA в файлах Word мы будем использовать Aspose.Words for Python. Это мощная библиотека для создания документов Word и управления ими из приложений Python. Вы можете установить библиотеку в свое приложение из PyPI, используя следующую команду pip.
pip install aspose-words
Создайте макрос VBA в документе MS Word на Python
Ниже приведены шаги по созданию макроса VBA в файле MS Word DOCM с использованием Python.
- Загрузите документ Word или создайте новый, используя класс Document.
- Создайте объект класса VbaProject.
- Задайте имя проекта, используя свойство VbaProject.name.
- Назначьте проект свойству Document.vbaproject.
- Создайте объект класса VbaModule.
- Задайте имя и тип модуля, используя свойства VbaModule.name и VbaModule.type соответственно.
- Задайте исходный код, используя свойство VbaModule.sourcecode.
- Добавьте модуль в проект документа VBA с помощью метода Document.vbaproject.modules.add(VbaModule).
- Сохраните документ с помощью метода Document.save().
В следующем примере кода показано, как создать макрос VBA в документе DOCM с помощью 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")
Изменить макрос VBA в документе Word на Python
Вы также можете беспрепятственно получать доступ к существующим макросам VBA в документах Word и изменять их. Следующие шаги демонстрируют, как этого добиться с помощью Aspose.Words for Python.
- Загрузите документ Word, используя класс Document.
- Получите ссылку на VbaProject в объект, используя свойство Document.vbaproject.
- Получите доступ к нужному модулю VBA, используя индекс, и обновите его исходный код, используя свойство VbaProject.modules[int].sourcecode.
- Сохраните документ с помощью метода Document.save().
В следующем примере кода показано, как изменить существующий макрос MS Word VBA с помощью 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")
Клонировать макрос VBA в документе Word с помощью Python
В некоторых случаях может потребоваться клонировать модуль VBA или весь проект VBA из одного документа Word в другой. Для этого Aspose.Words for Python позволяет довольно легко создавать клоны. В следующих разделах описано, как клонировать модуль VBA или проект VBA.
Клонировать модуль VBA
Ниже приведены шаги по созданию клона модуля VBA из одного документа DOCM в другой с использованием Python.
- Загрузите исходный документ Word, используя класс Document.
- Загрузите целевой документ Word с помощью класса Document.
- Создайте VbaProject для целевого документа Word.
- Получите клон модуля VBA из исходного документа Word в объект, используя метод Document.vbaproject.modules.getbyname(string).clone().
- Добавьте клонированный модуль в целевой документ, используя метод Document.vbaproject.modules.add(VbaModule).
- Сохраните целевой документ с помощью метода Document.save().
В следующем примере кода показано, как клонировать модуль MS Word VBA в 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")
Клонировать проект VBA
Ниже приведены шаги для клонирования проекта MS Word VBA в Python.
- Загрузите исходный документ Word, используя класс Document.
- Загрузите целевой документ Word с помощью класса Document.
- Получите клон проекта VBA из исходного документа с помощью метода Document.vbaproject.clone() и добавьте его в целевой документ с помощью свойства Document.vbaproject.
- Сохраните целевой документ с помощью метода Document.save().
В следующем примере кода показано, как клонировать проект VBA из одного документа Word в другой в 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")
Получите бесплатную лицензию API
Вы можете получить временную лицензию на использование Aspose.Words for Python без ограничений на пробную версию.
Вывод
В этой статье вы узнали, как создавать макросы VBA в документах MS Word с помощью Python. Более того, вы увидели, как изменять или клонировать существующие модули или проекты VBA программными средствами. Кроме того, вы можете изучить другие функции Aspose.Words для Python, используя документацию. Если у вас возникнут какие-либо вопросы, дайте нам знать через наш форум.
Смотрите также
- Создавайте документы MS Word с помощью Python
- Преобразование документа Word в HTML с помощью Python
- Преобразование документов Word в PNG, JPEG или BMP в Python
- Документы Word в Markdown с использованием Python
- Сравните два документа Word в Python
Информация: Если вам когда-нибудь понадобится получить документ Word из презентации PowerPoint, вы можете использовать конвертер Aspose Presentation to Word Document.