Como lidar com erros em macros do Visual Basic

Escrito por robert karr | Traduzido por josé fabián
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como lidar com erros em macros do Visual Basic
Aprenda boas práticas de codificação para evitar erros (Hemera Technologies/AbleStock.com/Getty Images)

As macros escritas no "Visual Basic" são uma parte do código do "Visual Basic for Applications" (VBA), o qual outorga muitas funcionalidades a alguns programas do "Microsoft Office", como o "Excel", o "Word", o "Access" ou o "PowerPoint". Mesmo que um programador tome o maior cuidado ao criar uma macro, se outros usuários estiverem envolvidos, será frequentemente impossível predizer todas as formas alternativas em que ela poderá ser usada ou o formato específico dos dados com os quais ela opera. Portanto, inserir código para gerenciar erros pode ser uma grande ajuda.

Nível de dificuldade:
Moderado

Outras pessoas estão lendo

Instruções

  1. 1

    Execute uma macro que você tenha gravado ou escrito manualmente com o Visual Basic, dentro de um dos aplicativos do "Microsoft Office". Esse exemplo usará o "Microsoft Excel". Se a macro falhar ou der resultados que você sabe que são incorretos, realize uma depuração. Pressione "Alt+F8" para abrir a caixa de diálogo "Macro".

  2. 2

    Selecione a macro da lista disponível e clique no botão "Edit" (Editar), do lado direito da caixa de diálogo. Isso abrirá o editor do Visual Basic e exibirá o código que faz com que a macro funcione. As linhas deveriam começar com "Sub nome da macro" e finalizar com "End Sub". [Nome de macro] será o valor padrão do sistema ("Macro1", "Macro2", etc) ou um nome que você tiver colocado. Entre essas duas linhas se encontrará o código do Visual Basic para executá-la.

  3. 3

    Abra o documento hóspede ("Excel" no nosso exemplo) e exiba-o em uma janela separada com o comando "Tile Windows Horizontally" (Alinhar janelas horizontalmente) ou "Tile Windows Vertically" (Alinhar janelas verticalmente). Abra a janela do editor do "Visual Basic" como foi indicado acima. Coloque o cursor no documento hóspede e pressione "F8" para executar a macro de uma linha por vez. Com cada passo, cada linha será marcada em cor amarela e outra ação acontecerá. Se você vir no documento onde o problema acontece, poderá consertá-lo depois no codigo. Se a macro tiver um comando incorreto ou ilegal, o que é provável caso tenha escrito o código manualmente, ela parará a execução e uma mensagem de erro aparecerá. Uma opção é "Debug" (Depurar). Clique nela para ressaltar a linha problemática em cor amarela.

  4. 4

    Evite que outros usuários tenham que passar pelo processo "Debug" e melhore as mensagens de erro que a Microsoft fornece (às vezes ocultas), criando um sistema para capturar os erros e informar ao usuário do problema diretamente. Use os seguintes comandos do "Visual Basic": "On Error", "Errorhandler" e "Error(Err)". Insira o seguinte entre a linha "Sub nome da macro" e o resto do código: "On Error GoTo ErrorHandler" (sem as aspas). No final das linhas de código, digite "Exit Sub" (sem as aspas). Depois, digite o seguinte:

    ErrorHandler: MsgBox "Esta macro encontrou um erro. O número de erro é: " & Err & Error(Err), vbInformation

    Isso exibirá uma caixa de diálogo para o usuário com uma opção, "OK". Ao clicar nesse botão, a macro finalizará.

  5. 5

    Crie um código de macro mais amigável ao usuário para substituir as mensagens de erro crípticas, como o famoso "Cancelar/Tentar novamente/Ignorar" criado pela Microsoft. Por exemplo, se o número de erro for "53" e a mensagem for "File not found" (Arquivo não encontrado), você sabe que a macro solicitou um arquivo que não existe ou não está no local especificado. Os usuários ingênuos podem querer mais ajuda para um erro. Nesse caso, mais detalhes podem ser dados alterando o "MsgBox" acima, por exemplo, para o seguinte:

    MsgBox "O nome do arquivo que você especificou é errôneo ou não está na pasta indicada. Verifique essa informação.", vbInformation

  6. 6

    Teste o funcionamento do passo 5 criando a macro em uma planilha do Excel. Clique em "Developer" (Desenvolvedor) e em "Visual Basic" para abrir o editor de código e digite estas linhas.

    Sub Macro1() On Error GoTo ErrorHandler Open "c:\nofile.xlsx" For Input As #1 ErrorHandler: If Err = 53 Then MsgBox "O nome do arquivo que você especificou é errôneo ou não está na pasta indicada. Verifique essa informação.", vbInformation End If Exit Sub End Sub

    Supondo que não um arquivo chamado "c:\nofile.xlsx", você verá a mensagem do "MsgBox" ao executar a macro.

Dicas & Advertências

  • Uma forma alternativa de lidar com erros é substituir o "On Error GoTo" por "On Error Resume Next". Isso indica que a macro deverá pular a instrução problemática e continuar com a seguinte. Isso pode ser útil em algumas situações, mas aumenta a possibilidade de obter resultados incorretos.
  • Use a sentença "Error" para simular erros na hora de testar o que pode estar causando um.
  • Se souber exatamente o que quer que a macro faça e estiver familiarizado com o "Visual Basic for Applications", escrever o seu próprio código em vez de gravá-lo pode economizar tempo. A gravação requer menos tempo de planejamento, mas isso será compensado pela probabilidade de cometer erros ao gravar.
  • Nunca execute macros sem testar em arquivos de dados, ou ao menos faça cópias delas antes. As probabilidades de corromper arquivos por causa de um problema em uma macro são altas.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível