No estoy seguro de entender tu pregunta, pero si lo que quieres es que, estando dentro de la ejecución de un bucle, quieres que el programa deje un momento para que el sistema haga otras tareas que tiene pendientes (por ejemplo, responder al clic del ratón sobre un botón de tu programa, etc.), lo que puedes hacer es usar dentro del bucle la función "DoEvents", tantas veces como creas necesario, incluso en un bucle anidado dentro del otro, que sea algo así como:
______________
Do
DoEvents
Loop While [y aquí la condición que debe cumplirse para continuar o no con el bucle principal]
______________
Esa condición puede ser un valor de Timer, el cambio de una variable, la respuesta a un MsgBox o InputBox que quieras poner... lo que sea.