Страницы: 1
RSS
работа с CommandBars (VBA)
 
Добрый вечер уважаемые подскаите пожалуйста как добавить пункт контекстного меню к обьекту "таблица", не могу найти значение  ((  
 
Просто в контекстное меню ячейки добавляю так:  
Set Bar = Application.CommandBars("Cell")  
   With Bar  
   Set NewControl = Bar.Controls.Add(Temporary:=True)  
   With NewControl  
       .Caption = "XXXXX"  
       .OnAction = "DeleteUser"  
       .FaceId = 100  
   End With  
   End With  
 
CommandBars("Cell") - вот это меню ячейки  
 
А в таблице нужный мне пункт отсутствует, и я полагаю что необходимо знать значение вместо "Cell" чтобы оно появилось.  
 
Если есть полный список то был бы благодарен.  
 
 
     
End Sub
 
Апну тему...  
 
Может есть кто разбирался в данном вопросе...  
Или подскажите как можно отследить через запись макросов название необходимого мне контекстного меню ((  
 
Уже подумываю может создать отдельное всплывающее меню при нажатии на ячейку в таблице, но возникают вопросы по созданию грамотного обработчика ((  
 
А так мне надо сделать чтобы при нажатии ПКМ на ячейке таблицы ListObjects("TblMove") у меня в контекстном меню появился новый параметр удалить, при нажати на который выскакивала бы форма одно из полей которого заполнялось бы значением активной ячейки таблицы
 
Почитайте Уокенбаха
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Или почитайте статью, написанную специально для вас )  
http://excelvba.ru/code/PopupMenu  
 
Нажимаете одну кнопочку - и все контекстные меню обзаводятся названиями.
 
Что-то я не въеду: что за объект такой "таблица"  
Или это что-то из Ёкселей, которые после 2003-его?  
 
Вы поясните, по ПКМ на чём появляется контекстное меню, в которое вы хотите что-то добавить?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
А можно при активном пустом листе любой книги (чтобы что-нибудь не затереть) запустить такой макрос, который выведет названия всех менюшек, их кнопочек, ID значков кнопок и сами значки:  
Sub ListPopups()  
  Dim ctl As CommandBarControl  
  Dim cbr As CommandBar  
  Dim iRow As Integer  
 
  On Error Resume Next  
  Application.ScreenUpdating = False  
 
  Cells(1, 1).Value = "CommandBar.Name"  
  Cells(1, 2).Value = "CommandBarControl.Caption"  
  Cells(1, 3).Value = "CommandBarControl.FaceId"  
  Cells(1, 4).Value = "CommandBarControl.ID"  
  Cells(1, 1).Resize(1, 4).Font.Bold = True  
     
  iRow = 2  
  For Each cbr In CommandBars  
     Application.StatusBar = "Обработка " & cbr.Name  
 
     If cbr.Type = msoBarTypePopup Then ' Выбираем только контекстные менюшки.  
        Cells(iRow, 1).Value = cbr.Name ' название панели - в столбец 1  
        iRow = iRow + 1  
        For Each ctl In cbr.Controls  
           Cells(iRow, 2).Value = ctl.Caption ' подпись кнопки - в столбец 2  
           ctl.CopyFace ' копируем картинку кнопки  
           If Err.Number = 0 Then  
              ActiveSheet.Paste Cells(iRow, 3) ' вставляем картинку кнопки в столбец 3  
              Cells(iRow, 3).Value = ctl.FaceId ' значение FaceId кнопки - в столбец 3  
           End If  
           Cells(iRow, 4).Value = ctl.ID ' ID кнопки - в столбец 4  
           Err.Clear  
           iRow = iRow + 1  
        Next ctl  
     End If  
 
  Next cbr  
  Range("A:D").EntireColumn.AutoFit  
  Application.StatusBar = False  
End Sub
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
{quote}{login=Alex_ST}{date=19.08.2011 11:12}{thema=}{post}Что-то я не въеду: что за объект такой "таблица"{/post}{/quote}Ex-список (2003) :-)
 
EducatedFool,  
спасибо за пример http://excelvba.ru/code/PopupMenu  
Очень удобно и наглядно.  
Утащил к себе в "кладовку", только добавив ссылку откуда и у кого взял (копирайт надо блюсти!)
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
{quote}{login=EducatedFool}{date=19.08.2011 11:09}{thema=}{post}Или почитайте статью, написанную специально для вас )  
http://excelvba.ru/code/PopupMenu  
 
Нажимаете одну кнопочку - и все контекстные меню обзаводятся названиями.{/post}{/quote}  
 
Спасибо огромное именно это я и искал!!!  
 
в итоге чтобы добавить Control в контекстное меню таблицы необходимо Выбрать Application.CommandBars("List Range Popup")  
 
Как говориться век живи век учись )) Да и я так и не могу запомнить как называется объект "Таблица" на английском
Страницы: 1
Читают тему
Наверх
Loading...