Não é possível alterar as propriedades de ListBox de um formulário VBA no Excel

Jan 06 2021

Não é possível alterar as propriedades de ListBox (TextColor, BorderColor, BackColor…) de dentro do procedimento de evento ListBox. Exemplo:

Private Sub MyListBox_Click()
  MyListBox.BackColor = vbGreen
End Sub

Isso não tem efeito. De dentro de outro Subs, ele funciona normalmente.

Respostas

Vityata Jan 06 2021 at 19:09

DblClick() é o evento que você está procurando:

Private Sub MyListBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    MyListBox.BackColor = vbRed
End Sub

Mas existem muitas maneiras melhores de fazer isso:

  • https://codereview.stackexchange.com/questions/154401/handling-dialog-closure-in-a-vba-user-form
  • https://www.vitoshacademy.com/vba-the-perfect-userform-in-vba/ (isenção de responsabilidade - meu artigo)