It took 41 seconds to load a listview with a million records using this code.
VB Code:
Option Explicit
Private Declare Function LockWindowUpdate Lib "User32" (ByVal hwndLock As Long) As Long
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Form_Load()
Dim x As Long
Dim clmX As ColumnHeader
Dim itmX As ListItem
Dim lngStart As Long
Dim lngFinish As Long
ListView1.BorderStyle = ccFixedSingle ' Set BorderStyle property.
ListView1.View = lvwReport ' Set View property to Report.
Set clmX = ListView1.ColumnHeaders.Add(, , "Col 1", 1000)
lngStart = GetTickCount()
LockWindowUpdate ListView1.hWnd
For x = 0 To 1000000
Set itmX = ListView1.ListItems.Add(, , CStr(x))
Next
LockWindowUpdate 0&
lngFinish = GetTickCount()
Debug.Print CStr(lngFinish - lngStart)
End Sub