Como renomear um botão ActiveX recém-criado?

Nov 26 2020

De acordo com a resposta de Mathieu , consegui criar um botão ActiveX via

Sub aaaaaaaa()
Dim newButton As Object
Set newButton = Sheets(sheetname_KvE).OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
    Link:=False, _
    DisplayAsIcon:=False, _
    Left:=800, _
    Top:=0, _
    Width:=300, _
    Height:=30).Object
With newButton
    .Caption = "bla"
    '.Name = "Button_what" ' - THIS DOES NOT WORK!
End With
End Sub

Como posso renomear esse botão?

Infelizmente, esses links não me levaram à solução:

  • Alteração do nome de uma caixa de listagem ActiveX do Excel

  • https://answers.microsoft.com/en-us/msoffice/forum/all/vba-code-to-modify-the-name-property-of-an-activex/d23b4ee5-aef4-425b-8a19-2899b65651e2

Isso seria muito glorioso, pois permite adicionar código relevante no módulo da planilha (pelo que posso ver, a sub-rotina relevante é sempre chamada [insert button name]_Click).

Respostas

1 SiddharthRout Nov 26 2020 at 17:03

É isso que você está tentando?

Sub Sample()
    Dim newButton As OLEObject
    Dim ws As Worksheet
    
    Set ws = Sheets(sheetname_KvE)
    Set newButton = ws.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
                                      Link:=False, _
                                      DisplayAsIcon:=False, _
                                      Left:=800, _
                                      Top:=0, _
                                      Width:=300, _
                                      Height:=30)
    newButton.Object.Caption = "bla"
    newButton.Name = "Button_what"
End Sub