There is no built-in VB function that lets you know whether a control - such as a ListBox - is currently displaying a vertical scrollbar. Here's a pair of functions that check the control's style bits and return a Boolean that tells if a vertical or horizontal scrollbar is visible:
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Const GWL_STYLE = (-16)
Const WS_VSCROLL = &H200000
Const WS_HSCROLL = &H100000
Function HasHorizontalScrollbar(ctrl As Control) As Boolean
HasHorizontalScrollbar = (GetWindowLong(ctrl.hwnd, _
GWL_STYLE) And WS_HSCROLL)
End Function
Function HasVerticalScrollbar(ctrl As Control) As Boolean
HasVerticalScrollbar = (GetWindowLong(ctrl.hwnd, GWL_STYLE) And WS_VSCROLL)
End Function
Using these functions is easy:
If HasVerticalScrollBar(List1) Then
' List1 is displaying a vertical scrollbar
End If