2015-01-15 3 views
2

Я хочу программно запустить стороннюю надстройку с помощью VBA. Im using Excel 2010Запуск сторонней надстройки Excel от VBA

В идеале, я хотел бы иметь возможность вызывать функции индивидуально, но у меня нет никакого доступа к коду надстройки (он даже не отображается как защищенный паролем VBA Проект, выполненный в Excel 2003).

Часы работы в Гуглинг сказали мне, что это возможно в более ранних версиях Excel, либо через Application.CommandBars("Add-Ins").Controls("Custom Button").Execute, либо CommandBars.ExecuteMso("Custom Button") - AFAIK, последний теперь работает только со встроенными функциями.

Эта пользовательская кнопка также отображается в меню «Правая кнопка», поэтому ее можно запустить с помощью какой-то реализации SendKeys. Это, однако, явно далеко от идеала.

Я вытягиваю свои волосы из-за этого - любая помощь будет принята с благодарностью.

+1

В каком меню правой кнопки мыши оно появляется? Это надстройка COM? – Rory

+0

Когда я нажимаю правой кнопкой мыши на ячейке, появляется возможность запуска надстройки внизу. Это надстройка COM. – kaybee99

+0

Длинный снимок, но: 'Application.Commandbars (« Ячейка »). Элементы управления (Application.Commandbars (« Ячейка »). Controls.Count) .Execute' * может * работать. – Rory

ответ

2

В зависимости от того, как он был добавлен в меню, это может работать:

Application.Commandbars("Cell").Controls(Application.Commandbars("Cell").Contro‌​ls.Count).Execute 

, который просто выполняет последний контроль. Также это должно работать под заголовком:

Application.Commandbars("Cell").Controls("the button caption").Execute 
+0

Последнее не работает - 'Controls' принимает только целое число. Я попытаюсь найти ярлык с помощью 'Controls (x) .Caption'. Еще раз спасибо – kaybee99

+0

Элементы управления должны принять заголовок - что будет, когда вы попробуете? – Rory

+0

Я вернул точную подпись, передал эту строку, и она отлично работает. Оказывается, она имеет префикс «&». – kaybee99

Смежные вопросы