Author |
Topic |
|
Leo
Belarus
4 Posts |
Posted - 08/17/2004 : 15:31:56
|
1.Как сделать доступ к макросу для всех документов не открывая того документа где он был создан? 2.Как переделать макрос в Add-In и сделать его видимым в меню Visio 2003?
Заранее благодарю, Leo |
|
Tumanov
Russia
1198 Posts |
Posted - 08/17/2004 : 16:14:36
|
1. Текст макроса находится в документе и добраться к нему, не открывая документа, в общем случае нельзя. Его надо переделывать в Add-In или Add-On. 2. Переделать макрос в Add-In автоматически нельзя. Add-In и Add-On - это внешние программы, которые пишутся чаще всего в VB6. Они чуть-чуть сложнее оформляются и используют немного другие соглашения для доступа к документу Visio. Простейший способ написать Add-In - скачать Visio SDK. Там есть прототипы и для Add-In и для Add-On (да и еще много чего полезного). При установке SDK они цепляются к Visual Studio. А уж из них легко сделать свою программу. Отличия от макроса в тексте программы будут очень небольшие, но будут. 2а. Add-In не запускается через Tools меню. То есть видимым его не сделаешь. Чтобы сделать видимым Add-On, нужно просто положить его в папку Solutions Visio 2002. У Visio 2003 такой папки вроде нет, но можно положить в любую папку и прописать путь к ней в настройках.
Примечание: Add-In - программа, выполняющаяся в среде Visio. Работает быстрее, но в случае неисправности может обрушить Visio. Add-On - программа, выполняющаяся отдельным процессом. Поэтому работает помедленнее, но и Visio не ломает. Еще есть отличия в способах запуска и обработке событий.
|
|
|
immortal
Russia
391 Posts |
Posted - 08/18/2004 : 05:45:58
|
quote: Как переделать макрос в Add-In
так-же как в ехе, конечно переделывается не макрос весь, а отдельные команды определяем переменную визио для всего модуля (допустим формы) Public vis As Object далее допустим в Private Sub Form_Load() определяем ссылку на объект Set vis = GetObject(, "Visio.Application")
если при обрашении к объекту визио в VBA: ActiveDocument.Pages.Count то в нашем случае добавляем в начало vis. и получим vis.ActiveDocument.Pages.Count
quote: сделать его видимым в меню Visio 2003
в адд-ин можно сделать меню и панели инструментов, на моей хомепаге есть адд-ин, можно посмотреть как пример(там панелька и меню tools-ks master), с VB идет шаблон для создания адд-инов но он кривой, поэтому надо скачать с сайта мелкомягких. лучше использовать адд-он но я пока не знаю как нормально запустить его, единственный известный мне способ =hyperlink("c:\myaddon.exe"), но в этом случае придется жмакать 3 раза на кнопку ок |
|
|
immortal
Russia
391 Posts |
Posted - 08/18/2004 : 09:41:55
|
вот некоторые трудности, которые возникают при разработке адд-ин: невозможность тестирования без полной компиляции невозможность сохранения(компиляции) без отключенного в визио адд-ина (или закрытого визио) необходимость определять все переменные с помощью dim незнаю как делать иконки на кнопках (пока не разбирался, руки не дошли)
|
|
|
|
Topic |
|
|
|