MyTetra Share
Делитесь знаниями!
Кнопка на ленте MS Office с изменяемой надписью
Время создания: 16.03.2019 23:43
Текстовые метки: лента, Ribbon,vba
Раздел: !Закладки - VBA - Excel
Запись: xintrea/mytetra_db_adgaver_new/master/base/1523184173tco3770wqm/text.html на raw.githubusercontent.com

Кнопка на ленте MS Office с изменяемой надписью

Posted on 16.05.2015 by officemacro

  

Оцените


В данном примере надпись на кнопке обновляется после нажатия на эту же кнопку. Обновление может выполняться и при наступлении других событий (открытие-закрытие документа, нажатие другой кнопки, какое-то действие пользователя и т.п.).

Разметка ленты:


<customUI

  xmlns="http://schemas.microsoft.com/office/2006/01/customui"

  onLoad="OnLoadRibbon">

...

 <button id="типФильтра" getLabel="GetFilterLabel"

  onAction="FilterSumRibbon" />

...

Код VBA с обработчиками событий:


'ленточный интерфейс

Dim ribbon As IRibbonUI

 

Sub OnLoadRibbon(ui As IRibbonUI)

  'получаем ссылку на ленту для последующего использования

  Set ribbon = ui

End Sub

 

'задаёт надпись для элемента управления на ленте

Public Sub GetFilterLabel(control As IRibbonControl, ByRef label)

  Dim a As Integer

  a = CInt(getGlob("FilterSum", "", 0))

  Select Case a

    Case -1

      label = "Совпадение фильтров"

    Case 1

      label = "Суммирование фильтров"

    Case 0

      label = "Одиночный фильтр"

    Case 2

      label = "Вычитание фильтров"

  End Select

End Sub

 

Public Sub FilterSumRibbon(control As IRibbonControl)

  Dim a As Variant

  a = CInt(getGlob("FilterSum", "", 0))

  a = a + 1

  If a = 3 Then a = -1

   

  Call SetGlob("FilterSum", CStr(a), "")

  'обновить надпись на кнопке ленты

  ribbon.InvalidateControl "типФильтра"

End Sub


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования