I used the high-resolution performance counter to time these methods. The fastest method at 61ms is
VB Code:
  1. '*** 61ms
  2. Dim numOfBooks As Long, numOfBooksDivided As Long
  3. Dim perc As Long
  4.  
  5. numOfBooks = UBound(allBooks, 2)
  6. numOfBooksDivided = numOfBooks / 100
  7.  
  8. For x = 0 To numOfBooks
  9.     'Don't use this one, it takes 90ms
  10.     'perc = Round((x + 1) / numOfBooksDivided)
  11.     perc = (x + 1) \ numOfBooksDivided
  12.     fraProgress.Caption = "Progress - " & perc & "%"
  13. Next
The next method took 74ms
VB Code:
  1. '*** 74ms
  2. Dim numOfBooks As Long, numOfBooksDivided As Double
  3.     Dim perc As Double
  4.  
  5.     numOfBooks = UBound(allBooks, 2)
  6.     numOfBooksDivided = 100 / numOfBooks
  7.  
  8.     For x = 0 To numOfBooks
  9.         fraProgress.Caption = "Progress - " & CStr(CLng(perc)) & "%"
  10.         perc = perc + numOfBooksDivided
  11.     Next
Here is a post on how to use the high-resolution performance counter
http://www.vbforums.com/showthread.p...18#post2033918