Nie można zmienić właściwości ListBox formularza VBA w programie Excel

Jan 06 2021

Nie można zmienić właściwości ListBox (TextColor, BorderColor, BackColor…) z poziomu procedury zdarzenia ListBox. Przykład:

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

Nie ma to żadnego skutku. Z poziomu innego subwoofera działa normalnie.

Odpowiedzi

Vityata Jan 06 2021 at 19:09

DblClick() to wydarzenie, którego szukasz:

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

Ale jest na to wiele lepszych sposobów:

  • https://codereview.stackexchange.com/questions/154401/handling-dialog-closure-in-a-vba-user-form
  • https://www.vitoshacademy.com/vba-the-perfect-userform-in-vba/ (zastrzeżenie - mój artykuł)