Я хочу добавить определенную функцию в MS Office. В настоящее время я смотрю на VBA для его разработки. Однако кажется, что запуск макросов требует отключения безопасности. Это означает, что если я распространяю программу VBA, другие люди должны разрешить выполнение макросов. (Проблемы с безопасностью)

Теперь проблема в том, как мне распространять написанный мной VBA? Например. в .exe файле? И есть ли другой способ создать это дополнение?

Я скачал какую-то надстройку для MS Word, вроде бы она написана на C++ и в формате .dll.

Спасибо.

1
Krimmel 29 Июл 2009 в 13:05

2 ответа

Вы можете запускать макросы в документе/шаблоне/надстройке даже в «высоком» режиме безопасности, если:

  • проект VBA имеет цифровую подпись
  • пользователь соглашается «доверять» издателю цифровой подписи

Когда пользователь в первый раз запускает макрос, подписанный вашей цифровой подписью, он получит сообщение о том, что «макросы подписаны YourCompanyName — хотите ли вы доверять всем надстройкам от этого издателя». Если они нажмут «да», они больше не увидят подсказку, и ваши макросы будут запущены.

Подробнее о том, как создать цифровая подпись.

1
Gary McGill 29 Июл 2009 в 13:21

Инструменты Visual Studio для Office (VSTO) позволяют создавать расширения для Microsoft Office с использованием любого языка .NET, включая Visual C++. Такие расширения действительно будут компилироваться в DLL-файлы и после установки на клиентскую машину не будут требовать от пользователя отключения каких-либо дополнительных предупреждений безопасности. Вам понадобится Visual Studio 2005/2008 Professional, чтобы использовать инфраструктуру VSTO.

Википедия содержит дополнительную информацию о VSTO, включая сравнение с VBA. Amazon, похоже, количество книг на эту тему, а также.

1
Jørn Schou-Rode 29 Июл 2009 в 13:31
Если бы я использовал VSTO, нужна ли мне цифровая подпись в программе?
 – 
Krimmel
29 Июл 2009 в 13:37
1
VSTO приближается к этому, но это все еще намного сложнее, чем разработка на VBA.
 – 
Gary McGill
29 Июл 2009 в 15:45
И медленнее.... codematic.net/ Excel-development/Excel-Visual-studio/… перерабатывает в 10 раз больше, чем VBA и в 20 раз C++. Но поскольку это будущее, об этом стоит подумать :) Я знаю, что мой инструментарий VBA в основном состоит из вещей, которые я написал за последние 10 лет. годы.
 – 
Mark Nold
30 Июл 2009 в 21:59