Criador de procedimentos

O Procedure Builder (ALT P) gera rapidamente um procedimento com configurações específicas (ScreenUpdating, etc.). Você pode salvar as configurações padrão do procedimento para economizar tempo ao criar novos procedimentos.

Saída:

procedure builder output
Casos de uso
  • Crie rapidamente subprocedimentos ou funções com as configurações desejadas.
  • Salve as configurações para uso futuro.

Salvar configurações como padrão

Para salvar suas configurações atuais como padrão (para facilitar o acesso no futuro), clique na parte inferior direita do construtor:

procedure builder save settings

Descrição das configurações

Leia abaixo uma descrição das configurações disponíveis no Procedure Builder.

Funções e Subs

Ao codificar (VBA ou qualquer outra linguagem), o código geralmente é armazenado em procedimentos. Os procedimentos são apenas blocos de código que podem ser chamados (executados). Você provavelmente conhece o conceito de gravação de uma macro no Excel. Quando você grava uma macro, na verdade está apenas criando um procedimento VBA: Subrotinas (Subs) e Funções. As Subs e as Funções têm três diferenças principais:

  1. As funções retornam um valor
  2. As funções podem ser usadas em fórmulas do Excel
  3. As funções só podem ser chamadas por meio de outros procedimentos (ou fórmulas do Excel). Não é possível atribuir uma função a um botão de comando ou acessá-las por meio da lista de macros.

As funções e subfunções concluídas têm a seguinte aparência:

example procedures

Como as funções retornam valores, você deve informar ao VBA o tipo de valor esperado. Observe que acima declaramos que a função é um valor booleano (TRUE ou FALSE):

Function Ex_Function() As Boolean

Em vez disso, você pode declarar uma Function como um tipo Variant que aceitará todos os tipos de valores:

Function Ex_Function() As Variant

O Procedure Builder definirá todas as funções como sendo do tipo Variant.

Alterne entre Sub e Function aqui:

procedure builder sub function

Nome e descrição

É importante nomear os procedimentos de forma descritiva e adicionar comentários para descrever o que um procedimento faz. Seu código pode fazer sentido para você agora, mas pode não fazer sentido para outra pessoa (inclusive para você mesmo no futuro). É uma prática recomendada adicionar comentários para cada procedimento que você criar.

Adicione nomes e comentários aqui:

procedure builder name description

Privado x Público (Avançado)

Por padrão, os procedimentos são acessíveis a partir da lista de macros (somente subs) e podem ser chamados por qualquer outro procedimento. A declaração Private oculta o procedimento da lista de macros e define o procedimento para ser acessível somente a partir do módulo de código atual (observação: tecnicamente, você pode contornar isso usando Application.Run).

Para fazer a declaração Private, adicione Private antes do nome do procedimento:

Private Sub Ex_Sub

Você também pode declarar módulos inteiros como “privados”. Para isso, adicione Private Module à parte superior do seu módulo de código:

Módulo privado

Ao marcar um módulo inteiro como privado, você oculta todos os procedimentos da lista de macros, mas eles podem ser facilmente referenciados em outros módulos.

Defina Público ou Privado aqui:

vba code module

Configurações

Todos os aplicativos (Excel, PowerPoint, Outlook, etc.) têm configurações no nível do aplicativo. Algumas dessas configurações são muito importantes para a codificação VBA. Importante: as configurações no nível do aplicativo são independentes dos procedimentos. Elas não serão “redefinidas” manualmente após a conclusão de um procedimento. Em vez disso, elas devem ser alteradas manualmente novamente quando desejado.

O Procedure Builder permite que você defina as seguintes configurações no nível do aplicativo:

Observação: “Display Message Box After Complete” (Exibir caixa de mensagem após a conclusão) não é uma configuração do aplicativo, mas será discutida na próxima seção.

Disable ScreenUpdating (Desativar atualização de tela ) – A tela não será atualizada durante a execução do procedimento. Isso pode reduzir drasticamente o tempo de processamento.

Disable Automatic Calculations (Desativar cálculos automáticos ) – Essa é uma configuração do Excel que desativa os cálculos automáticos. Isso pode acelerar drasticamente o tempo de processamento.

Disable Alerts (Desativar alertas ) – Mensagens de aviso e prompts não serão mostrados ao usuário. Em vez disso, o VBA processará a ação padrão.

Desativar eventos – Os eventos são “acionadores” que podem fazer com que o código seja executado (por exemplo, abertura de pasta de trabalho, ativação de planilha, alteração de célula etc.). Se a sua pasta de trabalho tiver eventos, você provavelmente desejará desativar os eventos enquanto o código é executado para evitar comportamentos indesejados (inclusive loops infinitos).

Caixa de mensagem na conclusão do procedimento – Para procedimentos que levam mais de alguns segundos para serem executados, geralmente faz sentido exibir uma caixa de mensagem após a conclusão. Isso alerta o usuário de que o procedimento terminou de ser executado. Para nossos clientes, geralmente configuramos alertas de caixa de mensagem para todos os procedimentos que demoram mais de 15 segundos para serem executados.

Tratamento de erros – Por padrão, o VBA interromperá a execução do código se encontrar um erro e solicitará que o usuário “depure” o código. Isso é desejável durante o teste/desenvolvimento. Entretanto, há muitos cenários em que é desejável tratar os erros de outras maneiras.

O tratamento de erros é definido no nível do procedimento. Não se trata de uma configuração em nível de aplicativo. Portanto, qualquer procedimento que precise do tratamento de erros não padrão precisa de uma declaração de tratamento de erros:

  • On Error Resume Next (No erro, retome o próximo): O VBA continua pulando a(s) linha(s) que contém erros e prossegue com a próxima linha de código.
  • On Error Goto Error_Handle: Em caso de erro, o VBA “vai” para uma seção definida do procedimento (“Error_Handle”, neste caso). Isso é útil para exibir uma caixa de mensagem sobre um erro, repetir/tentar novamente ou ignorar uma seção de código.
  • On Error Goto End: Na verdade, essa é a mesma configuração anterior, exceto que aqui “go to” vai para uma seção no final do procedimento.

Para restaurar o tratamento de erros padrão, digite o seguinte:

On Error Goto 0

Isso é desejável durante o teste/desenvolvimento. Entretanto, há muitos cenários em que é desejável tratar os erros de outras maneiras.

Observação: é uma “prática recomendada” evitar intencionalmente permitir erros e usar o tratamento de erros para processá-los. Em vez disso, você deve usar um código mais inteligente para evitar a geração de erros do VBA em primeiro lugar.

Procedure Builder: Tratamento de erros:

Comece a automatizar o Excel