Something like the following should work:
[tt]
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const LB_SETHORIZONTALEXTENT = &H194
Private Sub AddAndModifyHScroll(lst As ListBox)
' depends on the scalewidth
' if scalemode is Twips then Divide MaxWidth by TwipsPerPixel to get pixels
Dim lp As Long
Dim MaxWidth As Long
For a = 0 To lst.ListCount - 1
If Me.TextWidth(lst.List(a)) > MaxWidth Then MaxWidth = Me.TextWidth(lst.List(a))
Next
SendMessage lst.hwnd, LB_SETHORIZONTALEXTENT, MaxWidth / Screen.TwipsPerPixelX, 0
End Sub