2

Я создал несколько полезных макросов VBA для Word, Excel Outlook и PowerPoint 2007.

Теперь хочу

  • чтобы они всегда были доступны в соответствующем приложении с помощью сочетания клавиш или значка, чтобы щелкнуть и
  • также есть возможность легко делиться ими с коллегами, поэтому, если что-то обновляется, они могут легко использовать новую версию.
  • иметь обзор изменений (контроль версий)

Создание пользовательских команд на "ленте" в Office 2007 кажется мне очень трудным, и у меня возникает проблема, заключающаяся в том, что когда я храню макросы в определенном файле, этот файл должен быть открыт, чтобы макросы работали - я хотел бы имейте это открытым на заднем плане. Кто-нибудь знает хороший учебник или книгу, которая охватывает это?

Могу ли я создать свой собственный AddIn? Если я правильно помню, и AddIn больше нельзя изменять напрямую, поэтому, если код постоянно растет, мне нужно сохранить исходный код в одном месте и надстройку в другом - это правда?

3 ответа3

2

При всем уважении, Луис ошибается. Вам не нужна Visual Studio для создания надстроек, хотя вы, безусловно, можете использовать ее для этого.

В PowerPoint вы пишете код VBA и сохраняете его в файле PPT или PPTM, в зависимости от версии PowerPoint. Код может использовать старую объектную модель CommandBars для создания командных панелей и кнопок (которые появятся на вкладке Надстройки в 2007/2010/2015).

Затем вы можете сохранить его как надстройку PowerPoint (снова PPA или PPAM в зависимости от версии и требований совместимости). Конечный пользователь может установить надстройку так же, как и любой другой, или вы можете создать установщик или передать необходимые параметры реестра через групповую политику или что-то еще нескольким пользователям. Установка надстройки через реестр требует только двух или трех настроек.

После установки панели инструментов / функции надстройки будут доступны в приложении и для любого открытого в нем файла, не ограничиваясь каким-либо конкретным файлом документа.

Обновления? Скопируйте новый файл PPA/PPAM, чтобы заменить то, что уже установлено. Единственное ограничение заключается в том, что PowerPoint не может работать, когда вы это делаете.

И вернемся к должному уважению к Луизу ... он прав, для контроля версий потребуется сторонний инструмент. Это или то, что делают многие из нас, если нет необходимости в гранулярном контроле; перед внесением каких-либо изменений сохраните исходный файл в новый файл; имя каждого файла включает в себя дату его создания. Также полезно включить константу, установленную на ту же дату. Команда "О программе" в надстройке может отображать версию или дату или что угодно, чтобы вы могли убедиться, что у пользователя правильная версия.

У меня есть более подробная информация об этом на моем сайте FAQ по Powerpoint:

Создание и установка надстроек, панелей инструментов, кнопок http://www.pptfaq.com/index.html#name_Creating_and_Install_Add-ins-_Toolbars-_Buttons

2

Для Excel ваши макросы должны храниться в Персональной книге макросов (PERSONAL.XLSB), которая по умолчанию скрыта. Word имеет шаблон Normal, который (IIRC) может хранить макросы. В Outlook есть похожая вещь, но я не могу вспомнить, как она называется. PowerPoint - это аномалия, и, насколько я помню, кажется, нет места для хранения глобальных макросов.

Я использую SyncBackSE для синхронизации моей книги макросов Excel между компьютерами. Я не обновляю макросы Outlook достаточно часто, чтобы их можно было синхронизировать, но вы могли бы сделать что-то подобное. Синхронизация может быть выполнена только в том случае, если Excel закрыт, так как он блокирует книгу. Я не знаю, как бы вы внедрили контроль версий.

1

Если я не ошибаюсь, для создания надстроек вам понадобится Visual Studio (и инструменты Visual Studio для Office).

Если вы хотите, чтобы команды были всегда доступны, вы можете попробовать импортировать их в модель с поддержкой макросов и переписать Normal.dotm (по крайней мере, в Word). Просто предупредите их, прежде чем сделать это.

Кто ваши коллеги? Они в одной компании? Вы делитесь с ними сетью? Если это так, создайте сценарий запуска, который перезапишет пользовательский файл Normal.dotm.

Если вы не в той же сети, попробуйте такие сервисы, как Dropbox. Поделитесь с ними папкой. В папке создайте файлы с поддержкой макросов и пакет, чтобы перезаписать пользовательский файл Normal.dotm.

Другой вариант - оставить файл normal.dotm и создать простые документы моделей, оставив их доступными в сети / облаке, и дать указание своим коллегам использовать эти файлы, когда они захотят использовать ваши расширенные версии.

Теперь ... контроль версий? Для этого вам придется использовать сторонние инструменты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .