PPTX на Питоне

Макросы VBA позволяют автоматизировать различные типы операций в презентациях PowerPoint. Вы можете использовать их для создания диаграмм, отображения скрытых объектов и выполнения различных повторяющихся задач в презентациях. При работе с презентациями PowerPoint из приложений Python вам может понадобиться манипулировать макросами VBA. Поэтому в этой статье вы узнаете, как добавлять, извлекать и удалять макросы VBA в PowerPoint с помощью Python.

Библиотека Python для работы с макросами VBA в PowerPoint

Для работы с макросами VBA в презентациях PowerPoint мы будем использовать Aspose.Slides for Python. Библиотека предоставляет богатый набор функций для создания, редактирования и преобразования презентаций PowerPoint. Вы можете установить библиотеку из PyPI с помощью следующей команды.

> pip install aspose.slides

Добавить макрос VBA в презентации PowerPoint на Python

Ниже приведены шаги по добавлению макроса VBA в презентацию PowerPoint с использованием Python.

  • Сначала используйте класс Presentation для загрузки или создания презентации PowerPoint.
  • Затем создайте новый VbaProject и назначьте его свойству Presentation.vbaproject.
  • После этого добавьте пустой модуль VBA, используя метод Presentation.vbaproject.modules.addemptymodule(string).
  • Добавьте исходный код в модуль VBA, используя свойство IVbaModule.sourcecode.
  • Свяжите ссылки и добавьте их в коллекцию Presentation.vbaproject.references.
  • Наконец, сохраните файл презентации с помощью метода Presentation.save(string, SaveFormat.PPTM).

В следующем примере кода показано, как добавить макрос VBA в презентацию PowerPoint с помощью Python.

# Create or load a presentation
with slides.Presentation() as presentation:
    # Create new VBA project
    presentation.vba_project = slides.vba.VbaProject()

    # Add empty module to the VBA project
    module = presentation.vba_project.modules.add_empty_module("Module")

    # Set module source code
    module.source_code = "Sub Test(oShape As Shape) MsgBox ""Test"" End Sub"

    # Create reference to <stdole>
    stdoleReference = slides.vba.VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation")

    # Create reference to Office
    officeReference =slides.vba.VbaReferenceOleTypeLib("Office", "*\\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.0#0#C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE14\\MSO.DLL#Microsoft Office 14.0 Object Library")

    # add references to the VBA project
    presentation.vba_project.references.add(stdoleReference)
    presentation.vba_project.references.add(officeReference)

    # Save presentation
    presentation.save("add-vba-macro.pptm", slides.export.SaveFormat.PPTM)

Извлечение макросов VBA из PowerPoint в Python

Вы также можете получить доступ к макросам VBA, добавленным в презентацию PowerPoint, и извлечь из них информацию. Следующие шаги демонстрируют, как извлечь макросы VBA и распечатать их имя и исходный код в Python.

  • Сначала загрузите презентацию с поддержкой макросов, используя класс Presentation.
  • Затем проверьте, содержит ли презентация проекты VBA, используя свойство Presentation.vbaproject.
  • Получите доступ к каждому модулю VBA в коллекции Presentation.vbaproject.modules.
  • Наконец, извлеките исходный код и имя модуля VBA.

В следующем примере кода показано, как извлечь макросы PowerPoint VBA в Python.

# Load a presentation
with slides.Presentation("presentation.pptm") as presentation:
    
    # Check if presentation contains VBA Project
    if presentation.vba_project is not None:
        
        # Print each module
        for module in presentation.vba_project.modules:
            print(module.name)
            print(module.source_code)

Удалить макросы VBA из презентации PowerPoint

Чтобы удалить макрос VBA, вам нужно получить к нему доступ, используя его индекс. Получив ссылку на макрос, вы можете удалить его из коллекции. Ниже приведены шаги по удалению макроса VBA из презентации PowerPoint.

  • Сначала загрузите презентацию PowerPoint с поддержкой макросов, используя класс Presentation.
  • Затем удалите макрос VBA с помощью метода Presentation.vbaproject.modules.remove(Presentation.vbaproject.modules[index]).
  • Наконец, сохраните обновленную презентацию с помощью метода Presentation.save(string, SaveFormat.PPTM).

В следующем примере кода показано, как удалить макрос VBA в Python.

# Load a presentation
with slides.Presentation("presentation.pptm") as presentation:
    # Remove VBA macro using index
    presentation.vba_project.modules.remove(presentation.vba_project.modules[0])

    # Save presentation
    presentation.save("remove-vba-macro.pptm", slides.export.SaveFormat.PPTM)

Получить бесплатную лицензию

Вы можете использовать Aspose.Slides for Python без ограничений на пробную версию, получив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как работать с макросами VBA в презентациях PowerPoint с помощью Python. С помощью примеров кода мы продемонстрировали, как добавлять, извлекать и удалять макросы VBA в презентациях PowerPoint. Кроме того, вы можете посетить документацию, чтобы узнать больше об Aspose.Slides для Python. Кроме того, вы можете задать свой вопрос и запросы через наш форум.

Смотрите также