| Author | 
                
                  Topic   | 
                  | 
               
              
                | 
                 eug 
                 
                
                Russia 
                19 Posts  | 
                
                  
                    
                      
                       Posted - 05/20/2003 :  14:06:43
                      
  | 
                     
                    
                       Создал в VSD VBA-код, добавляющий меню "Выход" в Визио кот должен закрывать документ. При работе - ошибка - залезает в недопустимую область памяти и обваливает само Визио. ---------------------------------------------------------------------- Dim UIObj As Visio.UIObject, mnSet As Visio.MenuSet, mn As Visio.Menu Private Sub Document_DocumentOpened(ByVal doc As IVDocument) Set UIObj = Visio.Application.BuiltInMenus: Set mnSet = UIObj.MenuSets.ItemAtID(visUIObjSetDrawing) Set mn = mnSet.Menus.AddAt(0): mn.Caption = "Выход": mn.AddOnName "Application.DoCmd(visCmdFileClose)" 'me.AddOnName="Me.Close" 'mn.AddOnName "ThisDocument.Close": mn.Enabled=true ThisDocument.SetCustomMenus UIObj End Sub -------------------------------------------- (закоментированные варианты делают меню "Выход" неактивным) В то же время, добавив конпку CommandButton семейства MSForms 2.0 и навесив на нее Me.Close - получаем корректный выход из рис. В чем дело? 
 
  Багоцкий | 
                     
                   
                 | 
               
              
                | 
                 Tanuha 
                 
                
                Russia 
                1 Posts  | 
                
                  
                    
                      
                       Posted - 10/20/2004 :  22:26:11
                      
                      
  | 
                     
                    
                       У меня очень похожая ситуация.
  Такое ощущение, что, в .AddonName должна быть либо команда (DoCmd), либо реальный addon, который есть в коллекции addon-ов приложения. И описываться он должен, как имя exe-файла. Если же в AddonName передается какая-то левая строчка, то он просто дизейблит соответствующий пункт меню :((((
  Отсюда вопрос как сделать так, чтобы при нажатии на пункт меню вызывался именно какой-нибудь метод.
  Конечно, можно делать меню через CommandBar и навешивать на CommandBarButton обработчик событий, но это очень неудобно...
  Может кто-нибудь подскажет, либо как все-таки заставить MenuItem вызывать не только готовые addon-ы, либо как можно сопоставить CommandBarButton конкретному пункту меню, созданному через UIObject. | 
                     
                    
                        | 
                     
                   
                 | 
               
              
                |   | 
                
                  Topic   | 
                  | 
               
             
           | 
         
       
     |