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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Ввод формулы в шейп-листе для множества шейпов разом
СообщениеДобавлено: 03 май 2020, 11:30 
Не в сети

Зарегистрирован: 22 апр 2020, 10:54
Сообщений: 12
Использую Visio c: 2020
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Добрый день!

Есть необходимость разом для множества выделенных шейпов (линии и текст) прописать =CALLTHIS("ThisDocument.goXLS") в шейп-листе - ивентс - ивентДблКлик

сам в макросах не силен. искал на форуме и в интернете макросы для похожих целей - не нашел.

Товарищи, подскажите!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Ввод формулы в шейп-листе для множества шейпов разом
СообщениеДобавлено: 03 май 2020, 11:57 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Вот это должно работать
Код:
Sub ttt()
    For Each shp In ActiveWindow.Selection
        shp.CellsSRC(visSectionObject, visRowEvent, visEvtCellDblClick).FormulaU = "CALLTHIS(""ThisDocument.goXLS"")"
    Next
End Sub


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Ввод формулы в шейп-листе для множества шейпов разом
СообщениеДобавлено: 03 май 2020, 12:20 
Не в сети

Зарегистрирован: 22 апр 2020, 10:54
Сообщений: 12
Использую Visio c: 2020
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov
в очередной раз спасибо огромное!

понимаю, что уже наглею, но если несложно) а что тут изменить, чтобы можно было еще галочки "Использовать относительный путь для гиперссылки" в окне гиперссылки убрать для выделенных шейпов?

Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Ввод формулы в шейп-листе для множества шейпов разом
СообщениеДобавлено: 03 май 2020, 13:11 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Вот с этим сложнее.
Дело в том, что эта галочка действует в пределах экранной формы, а не во внутренних данных документа. Результатом является то, что в ячейку записывается не абсолютный, а относительный путь. Не признак, а просто немного другой результат.
То есть для выполнения требования придется выбирать текст из ячейки, вырезать из него относительный адрес и опять записывать в ту же ячейку.
Если что-то пойдет не так, то можно испортить гиперссылки.
Но в принципе можно попробовать вот такой модифицированный макрос (опять же для селектированных шейпов).
Код:
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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Ввод формулы в шейп-листе для множества шейпов разом
СообщениеДобавлено: 03 май 2020, 14:20 
Не в сети

Зарегистрирован: 22 апр 2020, 10:54
Сообщений: 12
Использую Visio c: 2020
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov
Спасибо!


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

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



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

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


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

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