All Forums
 Категория Visio
 Форум Вопросы и ответы
 Добавление кнопки
Author Previous Topic Topic Next Topic  

Евгени

4 Posts

Posted - 04/18/2012 :  11:29:55
Написан макрокс в VBA, прям в визио... Теперь что бы его запустить, нужно переходить в редактор VB и запускать в тестовом режиме код, а вдруг кто-нить из неразумных сотрудников изменит код проги????
Как добавить одну кнопку на сам визио, что бы она открывала мой труд примерно как exe файл?

Surrogate

Russia
122 Posts

Posted - 04/18/2012 :  14:42:55  Visit Surrogate's Homepage
а почему макрос запускается в тестовом (или пошаговом) режиме Alt+F11?

макрос можно вызывать сочетанием клавиш Alt+F8.

а вообще защиты от изменения кода в VBA нет.

Go to Top of Page

9rey

Russia
30 Posts

Posted - 04/18/2012 :  16:44:38
примерно так.
этот код вставляешь в ThisDocument:

Private Sub Document_DocumentOpened(ByVal doc As IVDocument)
    CbrInit 'создание кнопки на панели инструментов
End Sub

Sub CbrInit()
    Set cbrCommandBars = Visio.Application.CommandBars
    On Error Resume Next
    Err.Clear
    Set cbrCommandBar = cbrCommandBars("My_Toolbar")
    If Err.Number = 0 Then Exit Sub 'если тулбар уже создан, то выход
    Set cbrCommandBar = cbrCommandBars.add(Name:="My_Toolbar", _
        Position:=msoBarTop, Temporary:=False)
    cbrCommandBar.Protection = msoBarNoCustomize
    cbrCommandBar.Visible = True
    Set cbbCommandBarButton = cbrCommandBar.Controls.add(Type:=msoControlButton)
    With cbbCommandBarButton
        .Caption = "мой код"
        .TooltipText = "Запуск"
        .tag = "мой код"
        .FaceID = 59
        .OnAction = "ThisDocument.Main"
    End With
End Sub

Sub Main()
   здесь код твоей программы
End Sub


Теперь при нажатии на кнопку, запустится твой код. В моем примере это процедура Main.

Edited by - 9rey on 04/18/2012 16:45:36
Go to Top of Page

Евгени

4 Posts

Posted - 05/12/2012 :  07:21:59
Спасибо всем!!!
Вопрос задал, а где задавал, потерял)))
Но теперь я тут буду чаще.
Было решено так:
в Зис Документе прописано

Private Sub CommandButton1_Click()

UserForm1.Show
End Sub

в форме вся прога.

CommandButton1 добавлен прямо на чертёж, за границей листа ( в отличие от Екселя был найден такой пункт по расширению интерфейса)
От изменения защищено паролем: в режиме конструктора в окне дерева форм кликаешь правой кнопкой и выбираешь третий пункт, там вторая вкладка установить пароль.

Тем не менее ещё раз всем спасибо за отзывчивость.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)