Option ExplicitPrivate Declare Function SendMessage Lib "USER32" Alias "SendMessageA" ( _
                ByVal hwnd As Long, _
                ByVal Msg As Long, ByVal wParam As Long, _
                ByVal lParam As Long) As LongPrivate Const LVM_FIRST = &H1000
Private Const LVM_GETCOLUMNWIDTH = LVM_FIRST + 29
Private Const LVM_SETCOLUMNWIDTH = LVM_FIRST + 30Private Sub SetListViewColumnWidth(ByVal lvw As ListView, ByVal Col As Long, ByVal Width As Long)
    
    If (lvw.View = lvwList Or lvw.View = lvwReport) Then
        SendMessage lvw.hwnd, LVM_SETCOLUMNWIDTH, Col, Width
    End If
    
End Sub其中:
1、Col 参数是基于 0 的,即 ColumnHeader.Index - 1 
2、Width 参数为 -1 表示适应该列数据的最大宽度,-2 表示适应该列标题的最大宽度,其他值则自定义宽度。Private Sub Command1_Click()
    SetListViewColumnWidth ListView1, 1, -1
End Sub