Працюйте з макросами VBA в документах Word за допомогою Python

Visual Basic for Applications (VBA) — це потужна мова програмування, яка дозволяє автоматизувати завдання в документах Word. Крім того, ви можете легко виконувати повторювані завдання за допомогою макросів VBA. У цій статті ви дізнаєтеся, як працювати з проектами та модулями VBA в документах MS Word. Зокрема, у статті буде описано, як програмно створювати, змінювати та клонувати макроси VBA в Python.

Бібліотека Python для роботи з макросами MS Word VBA

Для роботи з макросами VBA у файлах Word ми будемо використовувати Aspose.Words for Python. Це потужна бібліотека для створення та роботи з документами Word із програм Python. Ви можете встановити бібліотеку у своїй програмі з PyPI за допомогою такої команди pip.

pip install aspose-words

Створіть макрос VBA в документі MS Word на Python

Нижче наведено кроки для створення макросу VBA у файлі DOCM MS Word за допомогою 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

# Завантажити документ Word.
doc = aw.Document("document.docm")

# Створіть проект VBA
project = aw.vba.VbaProject()
project.name = "AsposeProject"
doc.vba_project = project

# Створіть новий модуль і вкажіть вихідний код макросу.
module = aw.vba.VbaModule()
module.name = "AsposeModule"
module.type = aw.vba.VbaModuleType.PROCEDURAL_MODULE
module.source_code = "New source code"

# Додайте модуль до проекту VBA.
doc.vba_project.modules.add(module)

# Зберегти документ.
doc.save("create_vba_project.docm")

Змініть макрос VBA в документі Word на Python

Ви також можете безперешкодно отримувати доступ до існуючих макросів VBA в документах Word і змінювати їх. Наступні кроки демонструють, як досягти цього за допомогою Aspose.Words for Python.

  • Завантажте документ Word за допомогою класу Document.
  • Отримати посилання на VbaProject в об’єкт за допомогою властивості Document.vbaproject.
  • Отримайте доступ до потрібного модуля VBA за допомогою index і оновіть його вихідний код за допомогою властивості VbaProject.modules[int].sourcecode.
  • Збережіть документ за допомогою методу Document.save().

У наведеному нижче прикладі коду показано, як змінити існуючий макрос MS Word VBA за допомогою Python.

import aspose.words as aw

# Завантажити документ Word.
doc = aw.Document("document.docm")

# Отримати посилання на проект VBA.
project = doc.vba_project

# Оновити вихідний код.
newSourceCode = "Test change source code"
project.modules[0].source_code = newSourceCode
    
# Зберегти документ.
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 за допомогою класу документа.
  • Створіть VbaProject для цільового документа Word.
  • Отримайте клон модуля VBA з вихідного документа Word в об’єкт за допомогою методу Document.vbaproject.modules.getbyname(string).clone().
  • Додайте клонований модуль до цільового документа за допомогою методу Document.vbaproject.modules.add(VbaModule).
  • Збережіть цільовий документ за допомогою методу Document.save().

У наступному прикладі коду показано, як клонувати модуль VBA MS Word у Python.

import aspose.words as aw

# Завантажити вихідний документ Word.
doc = aw.Document("document.docm")

# Завантажити цільовий документ Word.
destDoc = aw.Document("dest_document.docm")
destDoc.vba_project = aw.vba.VbaProject() 

# Клонувати модуль VBA.
copyModule = doc.vba_project.modules.get_by_name("Module1").clone()
destDoc.vba_project.modules.add(copyModule)

# Зберегти документ.
destDoc.save("clone_vba_module.docm")

Клонуйте проект VBA

Нижче наведено кроки для клонування проекту MS Word VBA на Python.

  • Завантажте вихідний документ Word за допомогою класу Document.
  • Завантажте цільовий документ Word за допомогою класу документа.
  • Отримайте клон проекту VBA з вихідного документа за допомогою методу Document.vbaproject.clone() і додайте його до цільового документа за допомогою властивості Document.vbaproject.
  • Збережіть цільовий документ за допомогою методу Document.save().

У наведеному нижче прикладі коду показано, як клонувати проект VBA з одного документа Word в інший у Python.

import aspose.words as aw

# Завантажити вихідний документ Word.
doc = aw.Document("document.docm")

# Завантажити цільовий документ Word.
destDoc = aw.Document("dest_document.docm")

# Клонувати проект VBA.
destDoc.vba_project = doc.vba_project.clone() 

# Зберегти документ.
destDoc.save("clone_vba_module.docm")

Отримайте безкоштовну ліцензію API

Ви можете отримати тимчасову ліцензію на використання Aspose.Words for Python без обмежень оцінювання.

Висновок

У цій статті ви дізналися, як створювати макроси VBA в документах MS Word за допомогою Python. Крім того, ви бачили, як програмно змінювати або клонувати існуючі модулі або проекти VBA. Крім того, ви можете досліджувати інші функції Aspose.Words for Python за допомогою документації. Якщо у вас виникнуть запитання, не соромтеся повідомити нас через наш форум.

Дивись також

Інформація: якщо вам коли-небудь знадобиться отримати документ Word із презентації PowerPoint, ви можете скористатися конвертером Aspose Презентація в документ Word.