Уважаемые форумчане! Встретил на сайте http://www.computerra.ru/gid/rtfm/office/236985/ описание надстройки предназначенной для модификации контекстного меню ячейки в табличном редакторе Excel. С помощью этой надстройки можно дополнить стандартное контекстное меню любыми пунктами для работы в текущей сессии Excel, либо сохранить сделанные изменения для постоянного использования. Огромная просьба к Вам помочь ее найти. Заранее всем спасибо кто откликнется.
Кто-то когда-то (для Excel 2003) написал надстройку 03 ноября 2005 года. И как вы думаете Kroha где сейчас эта надстройка, если даже в журнале ссылка на ресурс удалена...
Сформировать пользовательское меню можно и без этой надстройки, ведь согласитесь Kroha она нужна Вам только на один раз.
Уважаемые VovaK и Hugo! Подскажите, пожалуйста, как сформировать контекстное пользовательское меню ячейки без надстройки, которое нужно только на один день, а на другой день другое. Писать макросы каждый день не хватает времени, а контекстное пользовательское меню ячейки сразу необходимо 2-3 работникам. Сам я пользователь, научившийся писать небольшие макросы, читая форумы.
Не понял, как это - другое? Ну а коротко - у меня работает так:
1. Private Sub Workbook_BeforeClose(Cancel As Boolean) On Error Resume Next Application.CommandBars("Cell").Controls.Item("MyFunc").Delete End Sub
Private Sub Workbook_Open() On Error Resume Next Application.CommandBars("Cell").Controls.Item("MyFunc").Delete On Error GoTo 0 FInic End Sub
2. В модуль:
Sub FInic() With Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton, before:=1) .Caption = "MyFunc" .OnAction = "checkfrm" .FaceId = 203 End With End Sub
'ну и собственно это запускающийся макрос: Private Sub checkfrm() FForm.Show End Sub
Hugo, огромное спасибо за оказанное внимание. Пытаюсь разобраться в Вашем макросе, но знаний не хватает. Если ничего не получится, то просьба не отказать в разъяснении.
А что тут пояснять - п1. это в книге, п2. в стандартный модуль (добавить, если нет). Вы редактор VBA откройте, там поймёте. Далее - в строке .OnAction = "checkfrm" указано имя запускающегося макроса при выборе этгого пункта меню, этот макрос пишете какой угодно, у меня тут форма открывается. "MyFunc" - это название пункта меню, пишите по вкусу. .FaceId = 203 - это иконка, подбираете номер по вкусу. Где-то тут на форуме был файл с примерами всех иконок, можно поискать или может быть кто адрес подскажет.
Ну вот и хорошо. Двойное удаление меню при открытии и закрытии книги - это перестраховка. Иначе может получиться, что в случае сбоя/зависа появятся два пункта меню - останется старое и появится новое. Так же этот код рассчитан, что меню есть только при открытом этом файле (но во всех файлах). У меня этот файл в автозагрузке - так что меню есть всегда.