Форум пользователей Visio http://visio.getbb.ru/ |
|
Ввод формулы в шейп-листе для множества шейпов разом http://visio.getbb.ru/viewtopic.php?f=6&t=1575 |
Страница 1 из 1 |
Автор: | kukhmaster [ 03 май 2020, 11:30 ] |
Заголовок сообщения: | Ввод формулы в шейп-листе для множества шейпов разом |
Добрый день! Есть необходимость разом для множества выделенных шейпов (линии и текст) прописать =CALLTHIS("ThisDocument.goXLS") в шейп-листе - ивентс - ивентДблКлик сам в макросах не силен. искал на форуме и в интернете макросы для похожих целей - не нашел. Товарищи, подскажите! |
Автор: | Tumanov [ 03 май 2020, 11:57 ] |
Заголовок сообщения: | Re: Ввод формулы в шейп-листе для множества шейпов разом |
Вот это должно работать Код: Sub ttt()
For Each shp In ActiveWindow.Selection shp.CellsSRC(visSectionObject, visRowEvent, visEvtCellDblClick).FormulaU = "CALLTHIS(""ThisDocument.goXLS"")" Next End Sub |
Автор: | kukhmaster [ 03 май 2020, 12:20 ] |
Заголовок сообщения: | Re: Ввод формулы в шейп-листе для множества шейпов разом |
Tumanov в очередной раз спасибо огромное! понимаю, что уже наглею, но если несложно) а что тут изменить, чтобы можно было еще галочки "Использовать относительный путь для гиперссылки" в окне гиперссылки убрать для выделенных шейпов? ![]() |
Автор: | Tumanov [ 03 май 2020, 13:11 ] |
Заголовок сообщения: | Re: Ввод формулы в шейп-листе для множества шейпов разом |
Вот с этим сложнее. Дело в том, что эта галочка действует в пределах экранной формы, а не во внутренних данных документа. Результатом является то, что в ячейку записывается не абсолютный, а относительный путь. Не признак, а просто немного другой результат. То есть для выполнения требования придется выбирать текст из ячейки, вырезать из него относительный адрес и опять записывать в ту же ячейку. Если что-то пойдет не так, то можно испортить гиперссылки. Но в принципе можно попробовать вот такой модифицированный макрос (опять же для селектированных шейпов). Код: Sub ttt()
For Each shp In ActiveWindow.Selection shp.CellsSRC(visSectionObject, visRowEvent, visEvtCellDblClick).FormulaU = "CALLTHIS(""ThisDocument.goXLS"")" s = shp.CellsSRC(visSectionHyperlink, visRow1stHyperlink, visHLinkAddress).ResultStr(0) pos = InStrRev(s, "\") s1 = Mid(s, pos + 1, Len(s) - pos) shp.CellsSRC(visSectionHyperlink, visRow1stHyperlink, visHLinkAddress).FormulaU = Chr(34) & s1 & Chr(34) Next End Sub |
Автор: | kukhmaster [ 03 май 2020, 14:20 ] |
Заголовок сообщения: | Re: Ввод формулы в шейп-листе для множества шейпов разом |
Tumanov Спасибо! |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |