Форум пользователей Visio http://visio.getbb.ru/ |
|
Добавление всплывающей подсказки (Miscellaneo/Comment) http://visio.getbb.ru/viewtopic.php?f=6&t=1441 |
Страница 2 из 2 |
Автор: | Surrogate [ 05 апр 2019, 18:32 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
TheHeat писал(а): Вы можете скинуть vss с рабочим эвентом CALLTHIS выше ссылку давал TheHeat писал(а): забыл ссылку добавить ! там она правда не на двойном клике сидит, а на щелчке по контекстному меню.
|
Автор: | Shishok [ 05 апр 2019, 23:21 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
Замени это: Код: CALLTHIS("Module1.SetToolTip","v400") на это:Код: RUNMACRO("Module1.SetToolTip","v400")
|
Автор: | Surrogate [ 06 апр 2019, 08:16 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
Shishok писал(а): Код: RUNMACRO("Module1.SetToolTip","v400") теперь о том, почему не срабатывал CALLTHIS ! я не очень четко сформулировал мысль Surrogate в сообщении #13178 писал(а): в модуле есть аргумент эта самая фигура ? корректней было бы сказать аргумент определяющий фигуру в процедуре, в модуле. ... Public Function StartDocSetting(vsoShape As Visio.Shape) в вашем случае этот аргумент должен был быть добавлен в процедуру Sub SetToolTip(sh As Visio.Shape)
|
Автор: | TheHeat [ 07 апр 2019, 00:44 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
Shishok писал(а): Замени это: Так и делал, но при переносе фигуры из набора в документ эта команда уже не работает. По той же причине что писал ранее - макроса не переносится в активный документ.Код: CALLTHIS("Module1.SetToolTip","v400") на это:Код: RUNMACRO("Module1.SetToolTip","v400") Чуть позже попробую совет Суррогата, года доберусь до компа с визио. |
Автор: | Tumanov [ 07 апр 2019, 12:49 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
Visio Guy выкладывал пример, который можно использовать в качестве образца. http://visguy.com/vgforum/index.php?act ... attach=142 Там VSD и трафарет. И код из пары строчек. Вызывается по Drop и DoubleClick. |
Автор: | Tumanov [ 07 апр 2019, 13:32 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
Также советую рассмотреть вот такую конструкцию: Код: Public Sub ShowCut(shpObj As Visio.Shape) Set ProgDoc = Documents("Prog.vss") If ProgDoc Is Nothing Then Exit Sub ProgDoc.ExecuteLine "ThisDocument.ShowCutS ActivePage.Shapes.ItemFromID(" & shpObj.ID & ")" End Sub Это сидит в ThisDocument основного документа и вызывается из шейпа из секции Actions как =CALLTHIS("ThisDocument.ShowCut"). Макрос перенаправляет вызов в трафарет (документ Prog.vss) в виде .ExecuteLine. И уже в трафарете в его ThisDocument выполняется макрос .ShowCutS, в который передается шейп, найденный по ID на активной странице основного документа. Макрос в трафарете сходу приступает к обработке переданного шейпа Код: Public Sub ShowCutS(shpObj As Visio.Shape)
If shpObj.CellExists("Prop.PRODCUT", 0) Then ... |
Автор: | TheHeat [ 08 апр 2019, 09:24 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
TheHeat писал(а): Shishok писал(а): Замени это: Так и делал, но при переносе фигуры из набора в документ эта команда уже не работает. По той же причине что писал ранее - макроса не переносится в активный документ.Код: CALLTHIS("Module1.SetToolTip","v400") на это:Код: RUNMACRO("Module1.SetToolTip","v400") Чуть позже попробую совет Суррогата, года доберусь до компа с визио. Ошибочка Раньше стояло =RUNMACRO("v400.Module1.SetToolTip") и не работало при переносе в активный документ. А вот =RUNMACRO("Module1.SetToolTip","v400") почему-то работает. Всем спасибо, а особенно Shishok |
Автор: | Shishok [ 08 апр 2019, 09:42 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
Ну так то и CallThis работает. Вот с таким кодом: Код: Sub SetToolTip(shObj As Visio.Shape)
Dim ToolTip As String Dim UndoScopeID1 As Long CheckToolTip: ToolTip = InputBox("Введите ID элемента базы") If IsNumeric(ToolTip) Then If ToolTip = Int(ToolTip) And Len(ToolTip) = 6 Then UndoScopeID1 = Application.BeginUndoScope("Вставка всплывающей подсказки") ToolTip = "#V[" & ToolTip & "] Имя /ПО#" shObj.Cells("Comment").FormulaForceU = Chr(34) & ToolTip & Chr(34) Application.EndUndoScope UndoScopeID1, True Else GoSub Msg End If Else GoSub Msg End If Exit Sub Msg: MsgBox "Ошибка: ID должен быть целым шестизначным числом", vbExclamation, "Error!" GoTo CheckToolTip End Sub |
Автор: | Surrogate [ 08 апр 2019, 12:41 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
странно, почему то у меня все работает, после добавления 3 слов в аргумент функции ? Встроенное видео спрятано под спойлер ↓ Прямая ссылка на видео Спойлер: ↕ Чотко с нужного момента |
Автор: | TheHeat [ 11 апр 2019, 10:26 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
новая задача: есть возможность автоматического изменения параметра фигуры при копировании? Хочу чтобы как в экселе скопированная фигура продолжала нумерацию текста ПО какому событию можно запустить макрос? |
Автор: | Tumanov [ 11 апр 2019, 10:45 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
Скорее всего по событию Page.ShapeAdded. Вообще, если требуется выбирать событие, то лучший помощник - Event Monitor. Поставляется в составе Visio SDK. Там можно посмотреть все события, которые происходит в Visio, в реальном времени. Остается только выбрать нужное. |
Автор: | Shishok [ 11 апр 2019, 11:16 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
Добавить в секцию Events, ячейка EventDrop - CallThis или RunMacro |
Автор: | Surrogate [ 11 апр 2019, 11:21 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
TheHeat писал(а): возможность автоматического изменения параметра фигуры при копировании? Хочу чтобы как в экселе скопированная фигура продолжала нумерацию текста можно обойтись без макросовВстроенное видео спрятано под спойлер ↓ Прямая ссылка на видео Спойлер: ↕ MS Visio. Создаем подпись номера входа с автоматическим увеличением значения но если потом фигура будет удалена, то нумерация естественно поплывёт ! |
Автор: | Tumanov [ 11 апр 2019, 11:33 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
Цитата: Добавить в секцию Events, ячейка EventDrop - CallThis или RunMacro Это более экономичный способ. Но применить его придется ко всем шейпам, которые подлежат копированию. И к новым тоже, которые будут появляться потом по мере наращивания номенклатуры. Поэтому выбор зависит от конкретных условий применения. |
Автор: | Surrogate [ 11 апр 2019, 11:47 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
TheHeat писал(а): новая задача хочу попросить создавать новые темы для новых задач!Мотивация: Поиск по форуму работает очень плохо! Бывает задается вопрос, вспоминаешь что было подобное обсуждение. Поиск не помогает, начинаешь искать по заголовкам в соответствующем разделе. Ничего не находится, потому что первоначальная тема очень далека от задаваемого вопроса. А иногда даже относится к другому разделу. Поэтому крайне сложно найти следы предыдущего обсуждения!!! |
Автор: | TheHeat [ 11 апр 2019, 15:13 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
Shishok писал(а): Добавить в секцию Events, ячейка EventDrop - CallThis или RunMacro Так и сделал. Результат устраивает, спасибо. Surrogate писал(а): можно обойтись без макросов Дело в том, что я делаю не только для себя. Проще написать макрос, дать человеку и сказать "просто сделай двойной клик мышью". Да и быстрее так гораздо. Смысл как-раз в этом, чтобы затрачивалось как можно меньше времени и требовалось как можно меньше действий от пользователя. Surrogate писал(а): TheHeat писал(а): новая задача хочу попросить создавать новые темы для новых задач!Мотивация: Поиск по форуму работает очень плохо! Бывает задается вопрос, вспоминаешь что было подобное обсуждение. Поиск не помогает, начинаешь искать по заголовкам в соответствующем разделе. Ничего не находится, потому что первоначальная тема очень далека от задаваемого вопроса. А иногда даже относится к другому разделу. Поэтому крайне сложно найти следы предыдущего обсуждения!!! Спасибо, народ. Пока с вашей помощью все получается. В VBA или в каком-либо другом ОО-языке я до этого не программировал. |
Автор: | Surrogate [ 11 апр 2019, 19:45 ] |
Заголовок сообщения: | Re: Добавление всплывающей подсказки (Miscellaneo/Comment) |
TheHeat писал(а): создавать тему ... смысла не вижу. ну мы здесь тоже не для себя пишем ответы
|
Страница 2 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |