Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 28 мар 2024, 12:42

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 83 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 18 сен 2012, 22:21 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 14 сен 2012, 14:16
Сообщений: 83
Откуда: Москва
Использую Visio c: 2003
Отрасль: Телекоммуникации
Должность: Руководитель проектов ЦОД
Уровнь квалификации: VBA Excel Word
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Хотел написать пару макросов-"улучшайзеров" :D для интерфейса Visio на своём компе (опыт работы с VBA Excel и Word у меня есть вполне приличный).
Встала проблема: а куда эти макросы записать?
В Excel'e такие макросы обычно хранятся в файле Personal.xls в папке C:\Users\MyUserName\AppData\Roaming\Microsoft\Excel\XLSTART или в надстройках, лежащих в папке C:\Users\MyUserName\AppData\Roaming\Microsoft\Addins, у Word'a - в Normal.dot

А у Visio я что-то никакого варианта записи макроса кроме как в активный документ я не нашёл :(
И надстройки у Visio - это, похоже, совсем не то, что в Excel и лежат они не в Addins, да и не компилируются при запуске приложения...

_________________
С уважением, Алексей
(ИМХО: Excel-2003 - THE BEST!!!)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 18 сен 2012, 23:48 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Да, в Visio макрос можно записать в секции ThisDocument. Например имеем файл Drawing1, в котором есть некий макрос test. При открытии файла Drawing2, жмем ALT+F8, в этом окне можно выбрать и запустить макрос находящийся в любом из активных документов…
Изображение
можно также запускать макрос с улучшательствами визио из любого другого приложения, подгрузив к этому приложению библиотеку визио в референсах

Изображение

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 08:36 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
спасибо за инфу, пригодиццо мне)
PS
че за фигня, не могу поставить + в репу
пишет
Цитата:
Вы должны раздать очки репутации другим пользователям прежде, чем дать репутацию этому-же пользователю.


каким другим? почему я должен? :shock:


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 08:58 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 14 сен 2012, 14:16
Сообщений: 83
Откуда: Москва
Использую Visio c: 2003
Отрасль: Телекоммуникации
Должность: Руководитель проектов ЦОД
Уровнь квалификации: VBA Excel Word
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Surrogate
Вы, наверное, не вникли в суть моего вопроса ;)
Как записать и сохранить макрос в ThisDocument я прекрасно знаю и умею процедуры на VB разрабатывать.
Но тогда макрос будет доступен только если документ, в котором он записан, загружен.
В Excel при открытии загружается (но остаётся невидимым обычному пользователю) файл Personal.xls, в Word - Normal.dot, в CorelDRAW - GlobalMacros.gms, и т.д. и т.п. в большинстве приложений, поддерживающих программирование в VBA.

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

И я вовсе не хочу подгружать в Референсах к КОНКРЕТНОМУ проекту написанные кем-то библиотеки элементов управления!

Ну, хорошо...
Изменим постановку вопроса.
1. Как заставить Visio при запуске открывать какой-то файл (.vsd или, может быть, .vss ), в котором можно записать макросы?
2. Как заставить Visio сделать такой открытый файл невидимым?

_________________
С уважением, Алексей
(ИМХО: Excel-2003 - THE BEST!!!)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 09:40 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Alex_ST писал(а):
В Excel при открытии загружается (но остаётся невидимым обычному пользователю) файл Personal.xls, в Word - Normal.dot, в CorelDRAW - GlobalMacros.gms, и т.д. и т.п. в большинстве приложений, поддерживающих программирование в VBA.
В Visio же никакие файлы, в которые можно было бы добавить коды процедур, написанных пользователем на VBA, автоматически при открытии не подгружаются.

В визио нет подобного, по крайней мере в вба. можно написать в си-шарпе аддон, но это как я понимаю не наш вариант :)
Alex_ST писал(а):
И я вовсе не хочу подгружать в Референсах к КОНКРЕТНОМУ проекту написанные кем-то библиотеки элементов управления!

это же родные библиотеки MS :)
Alex_ST писал(а):
1. Как заставить Visio при запуске открывать какой-то файл (.vsd или, может быть, .vss ), в котором можно записать макросы?
2. Как заставить Visio сделать такой открытый файл невидимым?

1. можно в шаблон файла визио, добавить событие при открытии документа - подгружать файл vss
2. я пока не знаю, как сделать его не видимым

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 09:43 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
Alex_ST
все правильно тебе Surrogate написал.

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

но так, как в экселе/ворде - низя

Цитата:
Surrogate
а так разблокировалось ?


неа :(


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 09:57 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
9rey писал(а):
Цитата:
Surrogate
а так разблокировалось ?

неа :(

это я писал Alex_ST про разблокировку данной ветки форума. сегодня какой-то день чудес :)

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 10:30 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 14 сен 2012, 14:16
Сообщений: 83
Откуда: Москва
Использую Visio c: 2003
Отрасль: Телекоммуникации
Должность: Руководитель проектов ЦОД
Уровнь квалификации: VBA Excel Word
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Я сейчас не могу тщательно поковыряться (работа мешает :D ), но, кажется, нащупал ход: создал пустой шаблон CommonMakros.vss и в него закину свои макросы, создающие нужные кнопочки на панелях управления по событию Document_DocumentOpened
Открытый шаблон по крайней мере не так мешает работать как открытый документ и его можно не скрывать. А в его коде (чтобы случайно не закрыли) можно прописать на событие Document_BeforeDocumentClose предупреждение об отключении общих макросов и при согласии - убиение созданных кнопок и потом уже закрытие.

_________________
С уважением, Алексей
(ИМХО: Excel-2003 - THE BEST!!!)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 10:40 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ну я примерно это и имел ввиду :)
что открытый файлик .vss особо не напрягает…

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 11:38 
Не в сети
Постоянный участник

Зарегистрирован: 11 май 2012, 15:05
Сообщений: 92
Очков репутации: 25

Добавить очки репутацииУменьшить очки репутации
шаблон можно открывать в инвизе
Код:
Visio.Documents.OpenEx("имя шаблона.vss", Visio.visOpenHidden)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 12:05 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 14 сен 2012, 14:16
Сообщений: 83
Откуда: Москва
Использую Visio c: 2003
Отрасль: Телекоммуникации
Должность: Руководитель проектов ЦОД
Уровнь квалификации: VBA Excel Word
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
ss87 писал(а):
шаблон можно открывать в инвизе
Код:
Visio.Documents.OpenEx("имя шаблона.vss", Visio.visOpenHidden)

Спасибо. Буду иметь в виду.
Только вот вопрос: а в каком документе должен отрабатываться этот код? :D :D :D
Т.е. вопрос остаётся тем же: Как заставить Visio при запуске открывать какой-нибудь документ или шаблон?
Ну а потом его можно будет и скрыть по событию открытия.

_________________
С уважением, Алексей
(ИМХО: Excel-2003 - THE BEST!!!)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 12:15 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 14 сен 2012, 14:16
Сообщений: 83
Откуда: Москва
Использую Visio c: 2003
Отрасль: Телекоммуникации
Должность: Руководитель проектов ЦОД
Уровнь квалификации: VBA Excel Word
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
К стати, посмотрел Справку по методу Documents.OpenEx и возник вопрос:
может быть, документ с общими макросами лучше открывать не с опцией visOpenHidden , а с visOpenNoWorkspace ?

_________________
С уважением, Алексей
(ИМХО: Excel-2003 - THE BEST!!!)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 12:19 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
добавить в вба в секцию Document код события на открытие документа
Код:
Private Sub Document_DocumentOpened(ByVal Doc As IVDocument)
Visio.Documents.OpenEx "c:\Users\me\Documents\my.vss", Visio.visOpenHidden ' путь к вашему стенсилу
End Sub

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 12:22 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 14 сен 2012, 14:16
Сообщений: 83
Откуда: Москва
Использую Visio c: 2003
Отрасль: Телекоммуникации
Должность: Руководитель проектов ЦОД
Уровнь квалификации: VBA Excel Word
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Проверил: в предыдущем посте был не прав :( - при visOpenNoWorkspace открывается в отдельном окне шэйпов.
А при visOpenHidden действительно, виден только в VBE

_________________
С уважением, Алексей
(ИМХО: Excel-2003 - THE BEST!!!)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 12:24 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 14 сен 2012, 14:16
Сообщений: 83
Откуда: Москва
Использую Visio c: 2003
Отрасль: Телекоммуникации
Должность: Руководитель проектов ЦОД
Уровнь квалификации: VBA Excel Word
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
добавить в вба в секцию Document код события на открытие документа
Код:
Private Sub Document_DocumentOpened(ByVal Doc As IVDocument)
Visio.Documents.OpenEx "c:\Users\me\Documents\my.vss", Visio.visOpenHidden ' путь к вашему стенсилу
End Sub

в какой документ то добавить если при открытии Visio ничего само не открывается?

_________________
С уважением, Алексей
(ИМХО: Excel-2003 - THE BEST!!!)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 12:28 
Не в сети
Постоянный участник

Зарегистрирован: 11 май 2012, 15:05
Сообщений: 92
Очков репутации: 25

Добавить очки репутацииУменьшить очки репутации
Alex_ST писал(а):
Как заставить Visio при запуске открывать какой-нибудь документ или шаблон?

Средствами вба ни как, только addin-ом.
Alex_ST писал(а):
при visOpenNoWorkspace открывается в отдельном окне шэйпов

флаги можно комбинировать
Код:
visOpenHidden+visOpenNoWorkspace


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 12:33 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Alex_ST писал(а):
Surrogate писал(а):
добавить в вба в секцию Document код события на открытие документа
Код:
Private Sub Document_DocumentOpened(ByVal Doc As IVDocument)
Visio.Documents.OpenEx "c:\Users\me\Documents\my.vss", Visio.visOpenHidden ' путь к вашему стенсилу
End Sub

в какой документ то добавить если при открытии Visio ничего само не открывается?

я предлагал этот код вставить в файл шаблона *.vst, на базе которого будут создаваться все последующие документы

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 12:34 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 14 сен 2012, 14:16
Сообщений: 83
Откуда: Москва
Использую Visio c: 2003
Отрасль: Телекоммуникации
Должность: Руководитель проектов ЦОД
Уровнь квалификации: VBA Excel Word
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Я сам уже догадался, что открывать какой-то документ при старте Visio можно только надстройкой...
Ещё бы почитать где-нибудь, как надстройки Visio создавать и куда класть?

_________________
С уважением, Алексей
(ИМХО: Excel-2003 - THE BEST!!!)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 12:52 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
ты бы сказал просто - чего ты хочешь конкретно, зачем именно при старте визио сразу и тд и тп. тебе уже кучу вариантов посоветовали.
вот я писал тоже, чем плох такой вариант c ярлыком?
подробнее:

создаешь ярлык на визио на раб. столе. пишешь ему в командную строку (поле "объект"):
"C:\Program Files (x86)\Microsoft Office\Office12\VISIO.EXE" C:\doс.vst

где то, что в "" - путь к визио, а после кавычек - путь к твоему шаблону, в котором то самое событие DocumentOpened

и все у тебя будет шикаладно - пользователь тыкнет на ярлычке - и вуаля - запуск шаблона и срабатывание события.

нафига усложнять?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Где записать макросы, общие для всех открытых документов?
СообщениеДобавлено: 19 сен 2012, 12:59 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Alex_ST писал(а):
Я сам уже догадался, что открывать какой-то документ при старте Visio можно только надстройкой...
Ещё бы почитать где-нибудь, как надстройки Visio создавать и куда класть?

надстройки Визио в C# только можно создать! спроси у юзера Sila, он меня пытался научить. но я ниасилил еще :(

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 83 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB