VBA в PowerPoint

Зачем нужны макросы в PowerPoint?

Начну с того, что задачи для программирования в PowerPoint достаточно специфические, в большинстве случаев они решаются через Excel. Однако, ряд задач решить таким образом не удастся. Например:

  • Добавить на каждый слайд презентации progressbar с показом оставшегося количества слайдов
  • Убрать весь alternative text, заголовки и гиперссылки с каждой формы и рисунка
  • Автоматически рисовать фигуру по заданным параметрам, например, для перехода в определенное место презентации
  • Создать умное оглавление
  • Сделать вышеперечисленное для всех презентаций в папке (пользуясь случаем – передаю привет трудягам, у кого их больше 30 на периодическом обновлении)

Как создавать макросы?

Если вы привыкли создавать и запуска макросы из файла с поддержкой макросов – здесь все без изменений. Привычным нажатием на Alt + F11 (или с вкладки Разработчик на ленте) заходите в VBE, добавляете модуль и вставляете код макроса. Запустить код можно по кнопке Run или по нажатию на F5.

Все становится сложнее, как только вы решаете выполнять код макроса достаточно часто. В Excel для этих целей используются надстройки и кнопки на панели быстрого доступа.

В PowerPoint привычные действия такого результата не дадут. Даже если вы сохраните вашу презентацию с поддержкой макросов и написанным кодом как надстройку, подключите ее, то вы не сможете запускать макросы. Честное слово, можете попробовать самостоятельно. Я раз 5 попробовал прежде, чем смотреть в интернете в чем же все-таки дело.

А проблема в том, что по умолчанию в PowerPoint вы не можете даже открыть на чтение код макросов в надстройках. Поэтому идем дальше:

Прописываем в регистре Windows возможность редактирования надстроек

Слава богу не мы одни таким вопросом задавались, поэтому есть готовый рецепт

  • Нажмите на клавиши Win + R
  • В появившемся окне вводим regedit
  • Идем в папку HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\PowerPoint\Options
    (12.0 для Office 2007, 14.0 для Office 2010, 15.0 для Office 2013, 16.0 для Office 2016)
  • Щелкаем в правом окне правой кнопкой мыши –> New -> DWORD
  • Имя = DebugAddins, значение = 1

Изображение регистра

Перезапустите PowerPoint – теперь вы сможете видеть в среде VBE код макросов из надстроек.

**Как добавлять/Убирать макросы из надстройки PowerPoint **

В Excel вы редактируете код макросов надстроек, сохраняете изменения и можете быть уверены в том, что перезапуске приложения надстройка предстанет перед вами в обновленном виде.

А вот в PowerPoint это не так. Не знаю точно из-за чего сделано это ограничения, но кнопка сохранить не производит никаких изменений в вашу надстройку.

Поэтому моя рекомендация – всегда хранить у себя копию надстройки в виде презентации с поддержкой макросов. Если нужно внести изменения в надстройку, то:

  • Идем в презентацию с поддержкой макросов
  • Вносим изменения в код макросов. Сохраняем изменения в презентации
  • В параметрах PowerPoint отключаем подключенную надстройку
  • Сохраняем презентацию с поддержкой макросов как надстройку с перезаписью
  • В параметрах PowerPoint подключаем надстройку

Непростые манипуляции по сравнению с Excel, да?

Проблема с панелью быстрого доступа

Для тех, кто также как и я, любит добавлять кнопки на панель быстрого доступа:

Кнопки

В PowerPoint делать этого нельзя, равно как и добавить кнопки на ленту. Если быть совсем точным, сделать это возможно, но делать это придется через специальную надстройку в Excel. В ней можно дорисовать нужные вкладки.

Для себя я остановился на запуске макросов из VBE по кнопке F5.

Если вы все еще не передумали насчет макросов в PowerPoint, то:

Ресурсы по VBA в PowerPoint

Как вы, наверное, догадались – литературы по VBA в PowerPoint как таковой нет. По крайней мере, я не нашел – если поделитесь ссылкой буду рад.

Со статьями на английском языке немного попроще – для себя нашел весьма полезными ресурсы

skp.mvps.org
pptfaq.com

1 комментарий к “VBA в PowerPoint”

  1. Да. Форму, созданную в надстройке я вижу в редакторе VBA. Как запустить то её из презентации?

    Ответить

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.