Форум пользователей Visio
http://visio.getbb.ru/

Назначить горячие клавиши на "Назначить слою"
http://visio.getbb.ru/viewtopic.php?f=6&t=1137
Страница 1 из 1

Автор:  lioon [ 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

Автор:  Tumanov [ 08 июн 2017, 11:28 ]
Заголовок сообщения:  Re: Назначить горячие клавиши на "Назначить слою"

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

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/