Ciao
codice:
Private Const LB_SETHORIZONTALEXTENT As Long = &H194
Private Const LB_GETTEXTLEN As Long = &H18A
Private Declare Function SendMessage Lib "User32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Sub SetHorizontalBar(lstBox As ListBox)
    Dim I As Integer
    Dim lenTxt As Long
    Dim maxLenTxt As Single
    Dim testo As String
    'Recupera la lunghezza massima degli elementi della ListBox.
    For I = 0 To lstBox.ListCount - 1
        lenTxt = SendMessage(lstBox.hwnd, LB_GETTEXTLEN, I, ByVal 0)
        If lenTxt > maxLenTxt Then
            testo = lstBox.List(I)
            maxLenTxt = lenTxt
        End If
    Next I
    maxLenTxt = Me.TextWidth(testo)
    If Me.ScaleMode = vbTwips Then maxLenTxt = maxLenTxt / Screen.TwipsPerPixelX
    'Visualizza la barra di scorrimento orizzontale.
    SendMessage lstBox.hwnd, LB_SETHORIZONTALEXTENT, maxLenTxt, 0&
End Sub
Dopo che hai popolato la tua ListBox, richiama la sub passandogli il nome della list: SetHorizontalBar NomeListBox