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

Форум по вопросам применения и программирования в Visio
Текущее время: 22 сен 2019, 18:25

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 12:56 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Хочу чтобы при двойном клике на фигуре запускался макрос редактирования всплывающей подсказки = Comment Cell (Miscellaneous Section) в таблице свойств фигуры. Не пойму как вставить текст из инпутбокса отличный от числа.
Код:
Sub SetToolTip()

    Dim ToolTip As String
    Dim SelectedItem As String
    Dim SelectedItemID As Long
    Dim UndoScopeID1 As Long
   
    SelectedItem = Application.ActiveWindow.Selection.PrimaryItem
    SelectedItemID = Application.ActivePage.Shapes(SelectedItem).ID
    ToolTip = InputBox("Введите подсказку")
    ToolTip = "text1" & ToolTip
   
    UndoScopeID1 = Application.BeginUndoScope("Вставить всплывающую подсказку")
    Application.ActiveWindow.Page.Shapes.ItemFromID(SelectedItemID).CellsSRC(visSectionObject, visRowMisc, visComment).FormulaU = ToolTip
    Application.EndUndoScope UndoScopeID1, True

End Sub

Выдает ошибку Run-time error '-2032466907(86db0425)' #NAME?

Макрос работает, если закомментировать строку 11 ToolTip = "text1" & ToolTip и в инпутбокс вводить число, если вводить текст, то выдает ту же ошибку. Также макрос работает если вместо значения переменной записывать текст напрямую .FormulaU = """text1"""
Конструкции типа .FormulaU = """text1""" & ToolTip выдают ошибку Run-time error ... Возникло исключение.

ЧЯДНТ???


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 13:17 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3672
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
Не за компом пишу, а если попробовать .Result, вместо .Formula?
А что за версия?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 13:19 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 513
Использую Visio c: 2008
Очков репутации: 105

Добавить очки репутацииУменьшить очки репутации
Код:
ActiveWindow.Selection.PrimaryItem.Cells("Comment").FormulaForceU = Chr(34) & ToolTip & Chr(34)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 14:16 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Shishok писал(а):
Код:
ActiveWindow.Selection.PrimaryItem.Cells("Comment").FormulaForceU = Chr(34) & ToolTip & Chr(34)


Спасибо, добрый человек. Надо было написать .FormulaU = Chr(34) & ToolTip & Chr(34), но ваш код конечно короче и правильнее. :oops:


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 16:27 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Может кто подскажет еще. Если макрос сохранен в наборе элементов, то как заставить его работать по двойному клику по фигуре вставленной из набора элементов?
Выдает System Error ….. Неопознанная ошибка


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 16:30 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3672
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
в модуле есть аргумент эта самая фигура ?
vin в сообщении #7519 писал(а):
В EventDblClick:
Код:
=CALLTHIS("DocSetting.StartDocSetting","ГОСТ_Р_21_1101_2013_v4")

где DocSetting - имя модуля, StartDocSetting - имя функции, ГОСТ_Р_21_1101_2013_v4 - имя документа, которое берем так: в редакторе VBA нужно встать на трафарет и увидим в его свойствах - свойство Name.

Сама функция выглядит так:
Код:
Public Function StartDocSetting(vsoShape As Visio.Shape)
    MsgBox "sdfsdfsdf"
End Function

Можно так же передавать параметры. Подробности в описании функции CALLTHIS: https://msdn.microsoft.com/en-us/librar ... onSection2


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 16:34 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Проблема в том, что у фигур в активном документе можно выставить Поведение/Двойной щелчек/выполнить макрос = макрос из активного документа. То есть, как только я вставляю фигуру из набора элементов в документ, то в поле "выполнить макрос" пусто.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 16:43 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3672
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
TheHeat писал(а):
то в поле "выполнить макрос" пусто.

Изображение
это в активном документе пусто. можно посмотреть в наборе элементов.
в гифке у меня просто все все модули в наборе элементов Vedomost2019.vss типа Private.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 16:51 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
в модуле есть аргумент эта самая фигура ?
vin в сообщении #7519 писал(а):
В EventDblClick:
Код:
=CALLTHIS("DocSetting.StartDocSetting","ГОСТ_Р_21_1101_2013_v4")

где DocSetting - имя модуля, StartDocSetting - имя функции, ГОСТ_Р_21_1101_2013_v4 - имя документа, которое берем так: в редакторе VBA нужно встать на трафарет и увидим в его свойствах - свойство Name.

Сама функция выглядит так:
Код:
Public Function StartDocSetting(vsoShape As Visio.Shape)
    MsgBox "sdfsdfsdf"
End Function

Можно так же передавать параметры. Подробности в описании функции CALLTHIS: https://msdn.microsoft.com/en-us/librar ... onSection2


В EventDblClick стояло
=RUNMACRO("Project400.Module1.SetToolTip")
сделал как вы сказали и при двойном клике ничего не происходит
=CALLTHIS("Module1.SetToolTip","Project400")


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 17:00 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
TheHeat писал(а):
то в поле "выполнить макрос" пусто.

Изображение
это в активном документе пусто. можно посмотреть в наборе элементов.
в гифке у меня просто все все модули в наборе элементов Vedomost2019.vss типа Private.
Так меню (Поведение/Двойной щелчек/выполнить макрос) дает выбрать макрос только из активного документа. То есть после переноса фигуры из набора элементов в документ поле "выполнить макрос" становится пустым, но в свойствах фигуры остается =RUNMACRO("Project400.Module1.SetToolTip")


Последний раз редактировалось TheHeat 05 апр 2019, 17:05, всего редактировалось 1 раз.

Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 17:03 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3672
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
TheHeat писал(а):
=CALLTHIS("Module1.SetToolTip","Project400")
с именем проекта не напутали ничего ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 17:09 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
TheHeat писал(а):
=CALLTHIS("Module1.SetToolTip","Project400")
с именем проекта не напутали ничего ?

Нет, EventDblClick=RUNMACRO("Project400.Module1.SetToolTip") работает в пределах набора элементов.
Имя набора элементов 400.vss, поэтому в дереве VBA проект называется Project400


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 17:14 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3672
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
TheHeat писал(а):
Имя набора элементов 400.vss, поэтому в дереве VBA проект называется Project400
вы точно имя набора элементов правильно написали ?
ровно вчера редактировал этот набор элементов. попробуйте увидите его в окне макросов ?
очень хорошая ветка была Как привязать макрос и свою панель инструментов к стенсилу делал вчера все по ней


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 17:24 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 513
Использую Visio c: 2008
Очков репутации: 105

Добавить очки репутацииУменьшить очки репутации
Ну можно еще свое контекстное меню в шейп вставить.
И вызывать макрос по нему:

Код:
'Добавление секции Action и именованной строки в секцию шейпа
Sub Test_AddNamedRowToSectionAction()
    Dim arrValue, sRowName As String
   
    ' поменять значения на свои
    sRowName = "RunMacros"  ' имя строки
    arrValue = Array("RUNMACRO(""Module1.Start1"",""CircularArray"")", """Пример меню""", "", "", "1", "", "", "", "", "", "")
   
    'Для швыделенного шейпа
    Call AddNamedRowToSectionAction(ActiveWindow.Selection.PrimaryItem, sRowName, arrValue)

End Sub

Private Sub AddNamedRowToSectionAction(Obj As Object, sRowName, arrValue)
    Dim arrCellName, sSectionName As String, i As Integer
   
    sSectionName = "Actions."
    arrCellName = Array(".Action", ".Menu", ".TagName", ".ButtonFace", ".SortKey", _
                        ".Checked", ".Disabled", ".ReadOnly", ".Invisible", _
                        ".BeginGroup", ".FlyoutChild")
   
    On Error GoTo ExitLine

    With Obj
        If Not .SectionExists(visSectionAction, False) Then
            .AddSection visSectionAction
        End If
       
        .AddNamedRow visSectionAction, sRowName, visTagDefault
       
        For i = 0 To UBound(arrCellName)
            If Strings.Len(arrValue(i)) <> 0 Then
                .Cells(sSectionName & sRowName & arrCellName(i)).FormulaU = arrValue(i)
            End If
        Next
    End With
    Exit Sub
   
ExitLine:
MsgBox "Ошибка " & Err.Number & " - " & vbNewLine & "Описание: " & Err.Description, vbExclamation, "AddNamedRowToSectionAction"
End Sub


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 17:28 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3672
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
Surrogate писал(а):
ровно вчера редактировал этот набор элементов. попробуйте увидите его в окне макросов ?
забыл ссылку добавить !
Shishok писал(а):
Ну можно еще свое контекстное меню в шейп вставить.
там как раз именно этот вариант


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 17:44 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
TheHeat писал(а):
Имя набора элементов 400.vss, поэтому в дереве VBA проект называется Project400
вы точно имя набора элементов правильно написали ?
ровно вчера редактировал этот набор элементов. попробуйте увидите его в окне макросов ?
очень хорошая ветка была Как привязать макрос и свою панель инструментов к стенсилу делал вчера все по ней


Вложения:
Screenshot_5.png
Screenshot_5.png [ 8.71 Кб | Просмотров: 402 ]
Screenshot_2.png
Screenshot_2.png [ 9.04 Кб | Просмотров: 406 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 17:55 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3672
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
Surrogate писал(а):
очень хорошая ветка была Как привязать макрос и свою панель инструментов к стенсилу делал вчера все по ней
там в обсуждении была картинка
Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 17:56 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Surrogate писал(а):
ровно вчера редактировал этот набор элементов. попробуйте увидите его в окне макросов ?
забыл ссылку добавить !
Shishok писал(а):
Ну можно еще свое контекстное меню в шейп вставить.
там как раз именно этот вариант

Что это за команда в вашем наборе?
Код:
DOCMD(1312)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 17:58 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3672
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
вызов окна данных фигуры


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 17:59 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Surrogate писал(а):
очень хорошая ветка была Как привязать макрос и свою панель инструментов к стенсилу делал вчера все по ней
там в обсуждении была картинка
Изображение

Да пробовал и Project400 и 400. Только что попробовал переименовать файл.

Вы можете скинуть vss с рабочим эвентом CALLTHIS?


Вложения:
v400.rar [15.53 Кб]
Скачиваний: 19
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу 1, 2  След.

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



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

Сейчас этот форум просматривают: Google [Bot] и гости: 1


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

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