Just printed-off this thread and had a closer look. This whole script flow might work better if you changed your loop from this:

code:
For Each $sFunction in $FuncToExecute  
$nul = execute($frmMain.DoEvents)
$prgStatus.Value = $prgStatus.Value+1
$nul = Execute($sFunction)
Sleep 1
Next

to this:

code:
For Each $sFunction in $FuncToExecute  
$nul = execute($frmMain.DoEvents(1))
$prgStatus.Value = $prgStatus.Value+1
$nul = Execute($sFunction)
Next

-Shawn