Dont forget something VERY important - to do with events. Events don't get dispatched unless you stick a DoEvents call somewhere inside your long loops - very, very important. So for example, if you had a long loop like this:

For $i = 0 to 10000000

; Doing something ...

Next

Any events generated while in this loop will just stay pending until the loop finishes (and control is returned somehow back to the DoEvents loop). To get things to work as expected, have to do this:

For $i = 0 to 10000000

; Doing something ...

$= Execute($Form.DoEvents)

Next

This way, events will get checked and dispatched on each iteration.

-Shawn