Const LB_GETSELITEMS = &H191
Сообщение LB_GETSELITEMS получает массив индексов всех выделенных строк в списке с множественным выделением
В успешном случае сообщение возвращает число индексов выделенных строк, записанных в массив. В случае ошибки возвращается LB_ERR
Const LB_ERR = -1
' Получаем число выделенных элементов ' в списке с множественным выделением Dim items() As Long ' индексы выделенных строк Dim numsel As Long ' число выбранных строк Dim c As Long ' счетчик Dim retval As Long ' возвращаемое значение ' Подсчитываем число выделенных элементов numsel = SendMessage(List1.hWnd, LB_GETSELCOUNT, ByVal 0, ByVal 0) If numsel = 0 Then Debug.Print "Нет выделенных строк" Else ' Изменяем размер массива для возможности хранения всех индексов ReDim items(0 To numsel - 1) As Long ' Получаем все индексы retval = SendMessage(List1.hWnd, LB_GETSELITEMS, ByVal numsel, items(0)) ' Выводим результат Debug.Print "Выделены строки (по индексам):" For c = 0 To numsel - 1 Debug.Print items(c); Next c End If