Я использую Excel 2007 на компьютере под управлением Windows XP. На моем листе у меня много «фигур» («Прямоугольники»).Excel VBA: щелкните правой кнопкой мыши по фигуре и добавьте новый пункт меню
Я назначил макросы для фигур, чтобы они выполняли задачу, когда кто-то нажимает на них.
Что я хотел бы сделать, это следующее, но я прочитал сообщения, в которых говорится, что это невозможно.
- Когда кто-то щелкнет правой кнопкой мыши по фигуре, можно ли добавить новый пункт меню?
Это легко сделать, когда кто-то щелкнет правой кнопкой мыши по ячейке, но формы кажутся разными.
Я знаю, что на рабочем листе есть событие «Worksheet_BeforeRightClick», но я не могу заставить его работать, когда я нажимаю правой кнопкой мыши на фигуре.
Ниже приведено начало моего кода, но это не влияет на мои меню.
Большое спасибо заранее
With Application.CommandBars("Shapes")
With .Controls.Add
.Caption = "My New Menu Item"
.BeginGroup = True
.OnAction = "MyNewMacro"
End With
End With
см [** 'this' **] (http://stackoverflow.com/questions/19157277/pause-macro-and-let-user-select -цвет), возможно, вы можете поиграть с кодом и заставить его работать :) –
Возможный дубликат [добавить элемент в контекстное меню в таблице Excel] (http://stackoverflow.com/questions/1040630/add-item- to-right-click-menu-in-excel-chart) –
вы можете прикрепить этот вид кода к правым щелчкам по фигурам как «Worksheet_BeforeRightClick (ByVal Target As Shape, Cancel As Boolean)» и проверить чек против массива диапазоны, такие как 'If IsInArray (Target, YourRangeArray) Then ...'. ** Все еще ** это поднимает проблемы, так как это вызовет ошибки, когда вы щелкните правой кнопкой мыши на чем-либо еще (например, на ячейке), если не сопутствует какой-то захват ошибок, например 'On Error Resume Next' – Takedasama