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

Добавить VBA Макросы

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

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

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

// Создает экземпляр класса презентации
Presentation pres = new Presentation();
try {
    // Создает новый VBA проект
    pres.setVbaProject(new VbaProject());
    
    // Добавляет пустой модуль в VBA проект
    IVbaModule module = pres.getVbaProject().getModules().addEmptyModule("Module");
    
    // Устанавливает исходный код модуля
    module.setSourceCode("Sub Test(oShape As Shape)MsgBox Test End Sub");
    
    // Создает ссылку на <stdole>
    VbaReferenceOleTypeLib stdoleReference = new VbaReferenceOleTypeLib("stdole", "*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\\Windows\\system32\\stdole2.tlb#OLE Automation");
    
    // Создает ссылку на Office
    VbaReferenceOleTypeLib officeReference = new 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 проект
    pres.getVbaProject().getReferences().add(stdoleReference);
    pres.getVbaProject().getReferences().add(officeReference);
   
    // Сохраняет презентацию
    pres.save("test.pptm", SaveFormat.Pptm);
} finally {
    if (pres != null) pres.dispose();
}

Удалить VBA Макросы

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

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

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

// Загружает презентацию, содержащую макрос
Presentation pres = new Presentation("VBA.pptm");
try {
    // Получает доступ к модулю Vba и удаляет его 
    pres.getVbaProject().getModules().remove(pres.getVbaProject().getModules().get_Item(0));
    
    // Сохраняет презентацию
    pres.save("test.pptm", SaveFormat.Pptm);
} finally {
    if (pres != null) pres.dispose();
}

Извлечь VBA Макросы

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

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

// Загружает презентацию, содержащую макрос
Presentation pres = new Presentation("VBA.pptm");
try {
    if (pres.getVbaProject() != null) // Проверяет, содержит ли презентация VBA проект
    {
        for (IVbaModule module : pres.getVbaProject().getModules())
        {
            System.out.println(module.getName());
            System.out.println(module.getSourceCode());
        }
    }
} finally {
    if (pres != null) pres.dispose();
}