Как мне вызвать/запустить подпрограмму управления лентой из обычной подсистемы?

У меня есть лента с кнопкой, которую я хочу вызвать с помощью обычной подпрограммы в макросе.

Public Rib As IRibbonUI
Sub RibbonOnLoad(ribbon As IRibbonUI)
    On Error GoTo this
    Set Rib = ribbon
    
    If Application.Version > 12 Then
        Rib.ActivateTab "tabColtar"
    End If
this:
End Sub

это кнопка на надстройке, которую я хочу вызвать:

Sub NeedToCallThis(control As IRibbonControl)
   ...
end sub

это моя подпрограмма, из которой я хочу вызвать/запустить/запустить кнопку:

Sub CallingAddinButton()
    ...how to call the "NeedToCallThis" ribbon button?
end sub

Этот вопрос похож на: Имитировать с помощью макроса щелчок по пользовательскому элементу ленты. Если вы считаете, что это другое, отредактируйте вопрос, поясните, чем он отличается и/или как ответы на этот вопрос не помогают решить вашу проблему.

Andrew Yim 27.06.2024 23:25

Я не думаю, что это то же самое.

TheKid6789 28.06.2024 21:11

Если вы так не думаете, отредактируйте свой вопрос, чтобы он был более четко обозначен как отдельная проблема.

Andrew Yim 29.06.2024 00:58

Было бы полезно показать код в NeedToCallThis Sub... особенно, чтобы понять, используется ли и как объект IRibbonControl (т. е. control).

JohnM 30.06.2024 14:48

@JohnM это просто обычный макрокод. Мне нужно научиться вызывать этот элемент управления «NeedToCallThis» из обычного макроса.

TheKid6789 01.07.2024 16:14

Ответ зависит от того, используете ли вы объект IRibbonControl внутри NeedToCallThis... "обычный макрокод" не помогает прояснить это.

JohnM 01.07.2024 20:22

IRibbonControl загружает надстройку с кнопкой «NeedToCallThis». Я также хочу вызвать ее из макроса.

TheKid6789 02.07.2024 16:43
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
7
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предполагая, что вы не ссылаетесь на параметр в Sub (например, используете оператор switch для control.ID, чтобы Sub выполнял разные действия в зависимости от того, какой элемент управления на ленте его вызвал), вы можете просто передать его Nothing, например:

Sub CallingAddinButton()
    NeedToCallThis Nothing
End Sub

(Примечание: все свойства объектов IRibbonControl доступны только для чтения — поэтому даже если вы Dim ircTemp AS IRibbonControl создадите новый/виртуальный IRibbonControl, вы не сможете присвоить значение ircTemp.id для передачи с NeedToCallThis ircTEMP)

Другие вопросы по теме