Доброго времени суток, уважаемые форумчане. Скажу сразу, нынешний вопрос уже имеет решение, мне просто хочется узнать имеется ли другое. Итак, на форме есть листбокс с прописанным содержанием:
| Код |
|---|
Me.Service_macros.List = Array("восс-е исходных значений ДИ", "восс-е контекст. меню листа", "визуал-я 1 строки прихода", "отображение скрытых имен") |
Задумывался запуск нужного макроса при его выборе, макросы разумеется сформированы и находятся в отдельном модуле. Сначала я попытался сделать это так:
| Код |
|---|
Private Sub Service_macros_Change()
ad = Array(Func_RecNM, Func_RecCM, Func_RecViz, Func_ShowImen)(Service_macros.ListIndex)
End Sub |
потом
Choose, потом
Switch, но всегда в этих случаях получалось одно и тоже: макросы запускались все по очереди (можно убедиться в прилагаемом примере выбрав любой макрос, а отработают все, что неприемлемо для меня). Я так понимаю, что согласно логике кода встроенных функций, они проверяют правильность всех вариантов, при этом запуская их в данном случае. Решением стало использование Select Case:
| Код |
|---|
Private Sub Service_macros_Change()
Select Case Service_macros.ListIndex
Case 0: ad = Func_RecNM
Case 1: ad = Func_RecCM
Case 2: ad = Func_RecViz
Case 3: ad = Func_ShowImen
End Select
End Sub |
Повторюсь, все работает, просто хотелось бы знать, можно ли было решить вопрос иначе
Заранее спасибо всем откликнувшимся