You should always modify a vertical scrollbar’s width and a horizontal scrollbar’s height to conform to the display resolution. You can learn the suggested size (in pixels) using the GetSystemMetrics API function, then convert it to twips, and rezise all the scrollbars on your forms accordingly. The following routine, however, does everything automatically:
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) _ As LongSub ResizeAllScrollbars(frm As Object) Dim hsbHeight As Single Dim vsbWidth As Single Dim ctrl As Control Const SM_CXVSCROLL = 2 Const SM_CYHSCROLL = 3 ' Determine suggested scrollbars' size (in twips) hsbHeight = GetSystemMetrics(SM_CYHSCROLL) * Screen.TwipsPerPixelY vsbWidth = GetSystemMetrics(SM_CXVSCROLL) * Screen.TwipsPerPixelX ' iterate on all the controls on the form For Each ctrl In Controls Select Case TypeName(ctrl) Case "HScrollBar" ctrl.Height = hsbHeight Case "VScrollBar" ctrl.Width = vsbWidth Case "FlatScrollBar" If ctrl.Orientation = 1 Then ctrl.Height = hsbHeight Else ctrl.Width = vsbWidth End If End Select NextEnd Sub