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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Назначить горячие клавиши на "Назначить слою"
СообщениеДобавлено: 08 июн 2017, 11:13 
Добрый день,
Нужно перевести выделенные элементы в определенный слой по сочетанию клавиш.
Создал в макро рекордере макрос, присвоил ему на выполнение сочетание клавиш, но не могу понять логику визио как сделать так, чтобы он выполнял его не к конкретному элементу, а к выделенному?

Пример макроса:
Код:
Sub Macro1()
' Сочетание клавиш: Ctrl+Shift+W
'

    'Enable diagram services
    Dim DiagramServices As Integer
    DiagramServices = ActiveDocument.DiagramServicesEnabled
    ActiveDocument.DiagramServicesEnabled = visServiceVersion140 + visServiceVersion150

    Dim UndoScopeID1 As Long
    UndoScopeID1 = Application.BeginUndoScope("Слой")
    Application.ActiveWindow.Page.Shapes.ItemFromID(237).CellsSRC(visSectionObject, visRowLayerMem, visLayerMember).FormulaForceU = """2"""
    Application.EndUndoScope UndoScopeID1, True

    'Restore diagram services
    ActiveDocument.DiagramServicesEnabled = DiagramServices

End Sub


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Назначить горячие клавиши на "Назначить слою"
СообщениеДобавлено: 08 июн 2017, 11:28 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Заменить вот это
Application.ActiveWindow.Page.Shapes.ItemFromID(237)
на
ActiveWindow.Selection(1)
Это будет - "первый из селектированных шейпов"
---------
Можно перед этим проверить, что ActiveWindow.Selection.Count больше нуля.
А если нужно выполнить операцию со "всеми селектированными", то в цикле от 1 до Selection.Count.


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

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



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

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


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

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