É melhor mostrar ProgressBar UserForms no VBA como modal ou sem modelo?

É melhor mostrar ProgressBar UserForms no VBA como modal ou sem modelo? Quais são as melhores práticas para o desenvolvimento de indicadores de progresso no VBA?

UserForms sem modelo requerem o uso deApplication.Interactive = False, enquanto os Modal UserForms, por sua natureza, bloqueiam qualquer interação com o aplicativo até que o procedimento principal seja concluído ou cancelado.

E seApplication.Interactive = False é usada, no entanto, a tecla Esc interrompe a execução do código, portanto, o uso deApplication.EnableCancelKey = xlErrorHandler e tratamento de erros (Err.Number = 18) é necessário no formulário de usuário e no procedimento de chamada.

Os procedimentos de chamada intensiva de recursos também podem resultar emCommandButton_Click eUserForm_Activate eventos falham em UserForms sem modelo.

Em geral, os indicadores de progresso que usam UserForms modais parecem mais simples, porque o código que está sendo executado está totalmente contido no módulo UserForm e há menos necessidade de passar variáveis.

O problema, no entanto, com o uso de UserForms modais para indicadores de progresso é que é necessário um módulo UserForm separado para cada procedimento que precise de um indicador de progresso, porque o procedimento de chamada precisa estar dentro do procedimento UserForm_Activate.

Portanto, embora seja possível ter um único indicador de progresso reutilizável em um UserForm sem modelo, ele será menos confiável do que executar o código em vários UserForms modais.

Qual caminho é melhor?

Obrigado!

questionAnswers(5)

yourAnswerToTheQuestion