Презентация через VBA

Пространство имен Aspose.Slides.Vba содержит классы и интерфейсы для работы с макросами и кодом VBA.

Добавление VBA макросов

Aspose.Slides предоставляет класс VbaProject, который позволяет создавать проекты VBA (и ссылки на проекты) и редактировать существующие модули. Вы можете использовать интерфейс IVbaProject для управления VBA, встроенной в презентацию.

  1. Создайте экземпляр класса Presentation.
  2. Используйте конструктор VbaProject для добавления нового проекта VBA.
  3. Добавьте модуль в VbaProject.
  4. Установите исходный код модуля.
  5. Добавьте ссылки на .
  6. Добавьте ссылки на Microsoft Office.
  7. Свяжите ссылки с проектом VBA.
  8. Сохраните презентацию.

Этот код на Python показывает, как добавить макрос VBA с нуля в презентацию:

import aspose.slides as slides

# Создает экземпляр класса презентации
with slides.Presentation() as presentation:
    # Создает новый VBA проект
    presentation.vba_project = slides.vba.VbaProject()

    # Добавляет пустой модуль в проект VBA
    module = presentation.vba_project.modules.add_empty_module("Module")
  
    # Устанавливает исходный код модуля
    module.source_code = "Sub Test(oShape As Shape) MsgBox ""Test"" End Sub"

    # Создает ссылку на <stdole>
    stdoleReference = slides.vba.VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation")

    # Создает ссылку на 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")

    # Добавляет ссылки в проект VBA
    presentation.vba_project.references.add(stdoleReference)
    presentation.vba_project.references.add(officeReference)

            
    # Сохраняет презентацию
    presentation.save("AddVBAMacros_out.pptm", slides.export.SaveFormat.PPTM)

Удаление VBA макросов

Используя свойство VbaProject класса Presentation, вы можете удалить VBA макрос.

  1. Создайте экземпляр класса Presentation и загрузите презентацию, содержащую макрос.
  2. Получите доступ к модулю Макрос и удалите его.
  3. Сохраните измененную презентацию.

Этот код на Python показывает, как удалить VBA макрос:

import aspose.slides as slides

# Загружает презентацию, содержащую макрос
with slides.Presentation(path + "VBA.pptm") as presentation:
    # Получает доступ к Vba модулю и удаляет его  
    presentation.vba_project.modules.remove(presentation.vba_project.modules[0])

    # Сохраняет презентацию
    presentation.save("RemovedVBAMacros_out.pptm", slides.export.SaveFormat.PPTM)

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

  1. Создайте экземпляр класса Presentation и загрузите презентацию, содержащую макрос.
  2. Проверьте, содержит ли презентация проект VBA.
  3. Пройдите через все модули, содержащиеся в проекте VBA, чтобы просмотреть макросы.

Этот код на Python показывает, как извлечь VBA макросы из презентации, содержащей макросы:

import aspose.slides as slides

with slides.Presentation(path + "VBA.pptm") as pres:
    if pres.vba_project is not None: # Проверяет содержит ли презентация проект VBA
        for module in pres.vba_project.modules:
            print(module.name)
            print(module.source_code)