Как хранить макросы 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 и создать простые документы модели, оставив их доступными в сети / облаке, и попросите своих коллег использовать эти файлы, когда они захотят использовать ваши расширенные версии.

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

  • Когда переменная Excel VBA должна быть убита или установлена ​​в Nothing?
  • VBA Runtime Error 1004 «Определенная пользователем или объектная ошибка» при выборе диапазона
  • Выберите первую пустую ячейку в столбце F, начиная с строки 1. (без использования смещения)
  • VBA Macro On Timer для запуска кода с каждым заданным количеством секунд, то есть 120 секунд
  • Как использовать события с кнопками Option Button на Userform
  • Как сравнить две целые строки в листе
  • Какова продолжительность жизни глобальной переменной в excel vba?
  • Как перенастроить базу данных Excel с 1 длинной строки, на 3 короткие строки и автоматически повторить процесс?
  • Как заблокировать данные в ячейке в excel с помощью vba
  • Каков наиболее эффективный / быстрый способ циклического преобразования строк в VBA (excel)?
  • Объединение данных ячейки в другие данные, если значения соответствуют
  • Interesting Posts

    Rails: использование шрифта Awesome

    Swift – Захват ключа от NSViewController

    При использовании макросов VM с VMWare, как использовать ключ командной строки в VM?

    Объявлять экземпляр типового типа динамически

    Поиск подсказки пользовательской функции Excel

    Можно ли одновременно использовать Mac несколькими пользователями?

    Отображение текущего выбора в списке

    Почему мой компьютер не загружается?

    Подclass NSObject в Swift: hash vs hashValue, isEqual vs ==

    Не удается подключиться к Windows Update

    ASP.net Получение ошибки «Доступ к пути запрещен» при попытке загрузить файлы на мой веб-сервер Windows Server 2008 R2

    Почему pow (n, 2) возвращает 24, когда n = 5, с моим компилятором и ОС?

    Я не могу открыть файл Excel

    Excel: невероятное сокращение и расширение элементов управления

    Ошибка Xcode при загрузке в App Store: «Не найдено подходящих записей приложений»

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