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

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

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

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

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

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

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

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

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

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

  # Загружает презентацию, содержащую макрос
  $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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

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

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

  # Загружает презентацию, содержащую макрос
  $pres = new Presentation("VBA.pptm");
  try {
    # Проверяет, содержит ли презентация проект VBA
    if (!java_is_null($pres->getVbaProject())) {
      foreach($pres->getVbaProject()->getModules() as $module) {
        echo($module->getName());
        echo($module->getSourceCode());
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }