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

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

Теперь я хочу

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

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

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

3 Solutions collect form web for “Как хранить макросы VBA для Office 2007, чтобы они всегда были доступны и делились ими с другими?”

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

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

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

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

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

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

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

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

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

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

Если я не ошибаюсь, вам нужна Visual Studio (и Visual Studio Tools для Office) для создания AddIns.

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

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

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

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

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

  • 2 Размерный массив из диапазона
  • Цикл через подпапки и файлы в пользовательском корневом каталоге
  • Последняя непустая ячейка (столбец) в данной строке; Excel VBA
  • Как вернуть результат из функции VBA
  • Кнопка Microsoft Powerpivot не работает
  • Макрос VBA, который ищет файл в нескольких подпапках
  • Разбить рабочий лист Excel на несколько рабочих листов на основе столбца с VBA
  • Как добавить VBA в MS Office?
  • Макрос диаграммы, отображающий неправильные метки из непересекающихся видимых строк на отфильтрованном листе
  • Excel: двухцветные цветовые шкалы
  • Создайте новый лист для каждого уникального агента и переместите все данные на каждый лист
  • Interesting Posts

    Почему плохо использовать переменную итерации в выражении lambda

    Не могли бы вы объяснить STA и MTA?

    Как восстановить драйверы с другого жесткого диска

    MSISDN: это данные SIM-карты? Почему вся предоставляемая функция (от Blackberry и Android) для получения MSISDN не надежна?

    Как исправить проблему «Firefox с использованием максимального процессора»?

    Принимайте свой собственный веб-сайт и DNS-сервер

    Полное удаление Oracle Developer Suite 10g из Windows XP (SP3)

    По умолчанию PowerShell выдает UTF-8 вместо UTF-16?

    Как вы видите скрытые системные папки в Windows 7?

    Означает ли полное шифрование тома SSD в полностью используемое состояние?

    Критерии Hibernate возвращают дочерние элементы несколько раз с помощью FetchType.EAGER

    Безопасное получение файла с компьютера Mac с помощью вредоносного ПО

    Обработка изменений идентификатора регистрации в Google Cloud Messaging на Android

    Как сохранить Firefox файлы txt автоматически, а не открывать в браузере

    Автоматизация кода кода InvokeRequired

    Давайте будем гением компьютера.