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

Как привязать макрос к кнопке на панели инструментов.
http://visio.getbb.ru/viewtopic.php?f=29&t=1345
Страница 1 из 1

Автор:  vin [ 20 июн 2018, 15:51 ]
Заголовок сообщения:  Как привязать макрос к кнопке на панели инструментов.

Работаю в Visio 2007.
Нужно выполнять много однообразных операций. Сделал макросы, хотел привязать к кнопке на панели инструментов - не могу!

Макросы находятся в отдельном модуле документа - NewMacros.
Через меню вызываются: Сервис - Макрос - NewMacros - RedFont(это имя макроса)

А вот как привязать к кнопке на панели инструментов?
Вызываю панель инструментов, создаю свою пустую панель. Могу перетаскивать на нее команды.
НО СРЕДИ КОМАНД МАКРОСОВ НЕ ВИДНО. Как быть?

Вложение:
Macros.png
Macros.png [ 37.93 Кб | Просмотров: 105 ]


На рисунке видно мою пустую панель, а в списке команд только "Марокросы..." и "Список макросов". Если поместить "Макросы..." - вызывается диалоговое окно выбора макроса для запуска. "Список макросов" - вообще кнопка неактивна.

Вывернулся пока так - поместил на кнопку меню Макросы. При вижу меню Макросы, а в нем уже виден мой модуль и в нем уже я вижу свои макросы. То есть мне каждого действия проделать кучу телодвижений. То есть в пользу бедных. :cry:

Автор:  Гость [ 20 июн 2018, 17:12 ]
Заголовок сообщения:  Re: Как привязать макрос к кнопке на панели инструментов.

была похожая тема еще на старом форуме

Автор:  vin [ 21 июн 2018, 15:07 ]
Заголовок сообщения:  Re: Как привязать макрос к кнопке на панели инструментов.

Спасибо, помогло. Помучился только с назначением макроса OnAction. В примере задано .OnAction=ThisDocument.Main.
Я написал подобное, но вылетала ошибка. В результате все же сделал так - поместил вызываемые макросы в модуль и указал на него:

Код:
Sub InitMacros()
    Dim cbrCommandBar As CommandBar
    Dim cbbCommandBarButton As CommandBarButton
   
    Set cbrCommandBar = Application.CommandBars("Мои макросы")
    Do While (cbrCommandBar.Controls.Count > 0)
        cbrCommandBar.Controls.Item(1).Delete
    Loop
   
    Set cbbCommandBarButton = cbrCommandBar.Controls.Add(Type:=msoControlButton)
    With cbbCommandBarButton
        .Caption = "Синий"
        .TooltipText = "Синий - резервный кананал"
        .Tag = "синий"
        .FaceID = 59
        .Style = msoButtonIconAndCaption
        .OnAction = "NewMacros.AllBlue"
    End With
   
    Set cbbCommandBarButton = cbrCommandBar.Controls.Add(Type:=msoControlButton)
    With cbbCommandBarButton
        .Caption = "Красный"
        .TooltipText = "Красный - резервный кананал"
        .Tag = "красный"
        .FaceID = 59
        .Style = msoButtonIconAndCaption
        .OnAction = "NewMacros.AllRed"
    End With
   

    Set cbbCommandBarButton = cbrCommandBar.Controls.Add(Type:=msoControlButton)
    With cbbCommandBarButton
        .Caption = "Черный"
        .TooltipText = "Черный - резервный кананал"
        .Tag = "Черный"
        .FaceID = 59
        .Style = msoButtonIconAndCaption
        .OnAction = "NewMacros.AllBlack"
    End With

End Sub

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