No se pueden cambiar las propiedades de ListBox de un formulario VBA en Excel

Jan 06 2021

No es posible cambiar las propiedades de ListBox (TextColor, BorderColor, BackColor…) desde dentro del procedimiento de evento ListBox. Ejemplo:

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

Esto no tiene ningún efecto. Desde dentro de otros Subs funciona normalmente.

Respuestas

Vityata Jan 06 2021 at 19:09

DblClick() es el evento que buscas:

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

Pero hay muchas formas mejores de hacerlo:

  • https://codereview.stackexchange.com/questions/154401/handling-dialog-closure-in-a-vba-user-form
  • https://www.vitoshacademy.com/vba-the-perfect-userform-in-vba/ (descargo de responsabilidad - mi artículo)