Ist es besser, ProgressBar UserForms in VBA als modal oder modal zu zeigen?

Ist es besser, ProgressBar UserForms in VBA als modal oder modal zu zeigen? Was sind die Best Practices für die Entwicklung von Fortschrittsindikatoren in VBA?

Modeless UserForms erfordern die Verwendung vonApplication.Interactive = FalseModal UserForms blockieren von Natur aus jede Interaktion mit der Anwendung, bis die Kernprozedur abgeschlossen ist oder abgebrochen wird.

WennApplication.Interactive = False Wird jedoch die Esc-Taste verwendet, so unterbricht die Codeausführung die Verwendung vonApplication.EnableCancelKey = xlErrorHandler und Fehlerbehandlung (Err.Number = 18) ist sowohl in der UserForm als auch in der aufrufenden Prozedur erforderlich.

Ressourcenintensive Aufrufprozeduren können ebenfalls dazu führenCommandButton_Click undUserForm_Activate Ereignisse, die in modelllosen UserForms fehlschlagen.

Im Allgemeinen erscheinen Fortschrittsanzeigen, die modale UserForms verwenden, einfacher, da der ausgeführte Code vollständig im UserForm-Modul enthalten ist und die Übergabe von Variablen weniger erforderlich ist.

Das Problem bei der Verwendung von modalen UserForms für Fortschrittsanzeigen ist jedoch, dass für jede Prozedur, die eine Fortschrittsanzeige benötigt, ein separates UserForm-Modul erforderlich ist, da sich die aufrufende Prozedur in der UserForm_Activate-Prozedur befinden muss.

Während es möglich ist, eine einzige wiederverwendbare Fortschrittsanzeige in einer modelllosen Benutzerform zu haben, ist sie weniger zuverlässig als die Ausführung des Codes aus mehreren modalen Benutzerformen heraus.

Welcher Weg ist besser?

Vielen Dank!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage