Как сохранить макросы VBA для Office 2007, чтобы они всегда были доступны и обменивались ими с другими?

5136
MostlyHarmless

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

Теперь хочу

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

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

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

2

3 ответа на вопрос

2
benshepherd

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

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

2
Steve Rindsberg

При всем уважении, Луис ошибается. Вам не нужна 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

1
Luiz Angelo

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

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

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

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

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

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

Похожие вопросы