Невозможно изменить свойства ListBox формы VBA в Excel

Jan 06 2021

Невозможно изменить свойства ListBox (TextColor, BorderColor, BackColor…) из процедуры события ListBox. Пример:

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

Это не имеет никакого эффекта. Изнутри другого саба работает нормально.

Ответы

Vityata Jan 06 2021 at 19:09

DblClick() событие, которое вы ищете:

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

Но есть много способов сделать это лучше:

  • https://codereview.stackexchange.com/questions/154401/handling-dialog-closure-in-a-vba-user-form
  • https://www.vitoshacademy.com/vba-the-perfect-userform-in-vba/ (отказ от ответственности - моя статья)