Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _ hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As LongPrivate Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, _ lpRect As RECT) As LongConst LB_GETITEMHEIGHT = &H1A1Type RECT Left As Long Top As Long Right As Long Bottom As LongEnd Type' Return the number of visible items in a ListBox controlFunction ListBoxVisibleItems(lb As ListBox) As Long Dim lpRect As RECT, itemHeight As Long ' Get client rectangle area GetClientRect lb.hwnd, lpRect ' Get height of each item itemHeight = SendMessage(lb.hwnd, LB_GETITEMHEIGHT, 0, ByVal 0&) ' Do the division ListBoxVisibleItems = (lpRect.Bottom - lpRect.Top) itemHeightEnd Function

