você deve usar o método InvalidateControlMso
em vez do InvalidateControl
quando estiver lidando com controles incorporados (os que já existem na faixa de opções do Excel).
InvalidateControl
é usado para controles personalizados criados pelo usuário.
O evento getEnabled
é o que você usará para habilitar/desabilitar o botão na faixa de opções.
Aqui está um exemplo de como você pode fazer isso:
Sub yourCustomRibbon_onLoad(ribbon As IRibbonUI)
Set miRibbon = ribbon
miRibbon.InvalidateControl ("customButton") ' Agora a função getEnabled será chamada para o customButton
End Sub
' Esta função é chamada quando a faixa de opções (Ribbon) quer saber se um botão está habilitado ou não.
Sub getEnabled(control As IRibbonControl, ByRef enabled)
Select Case control.ID
Case "customButton"
enabled = True ' Muda o estado de enabled para Verdadeiro, o que habilitará o botão.
Debug.Print "Verdadeiro " & Now
End Select
End Sub
Postado : 01/08/2023 12:10 pm