Declara una variable pública de tipo Boolean en 'frmProg'. En el evento 'Click' del botón de cancelar asigna el valor TRUE a la variable:
Public indCancel as Boolean
Private Sub BotonCancelar_Click
indCancel = True
End Sub
Luego en el bucle introduce la siguiente línea:
If frmProg.indCancel Then Exit Do
Ten en cuenta que si al final no estableces frmProg = Nothing y frmProg está declarado a nivel de módulo, si intentas repetir el proceso, indCancel seguirá siendo TRUE, por lo que el bucle se terminará en la primera iteracción. Si es tu caso, haz lo siguiente:
If frmProg.indCancel Then
frmProg.indCancel = False
Exit Do
End If
También podrías incluir 'indCancel = False' en el evento Unload de frmProg.
Espero que te vaya bien...