Conhecendo o Editor da Microsoft Visual Basic
02/09/2013 19:35Introdução
O código (script) em VBA deve ser escrito/colado em módulos no VBE (Visual Basic for Applications).
Os módulos constituem uma espécie de container em que se entram códigos na linguagem de Visual Basic (for Applications). O objetivo principal de seu uso é automatizar tarefas dos aplicativos de Office.
Visualizar Módulos no VBE
A partir da Aplicação Office que esteja usando pressione ALT+F11 para chegar à uma tela semelhante a de baixo:

A tela toda, em sim, é o ambiente chamado VBE (ou Visual Basic Editor). É nessa janela que são desenvolvidos as macros, scripts, ou códigos de VBA, como são conhecidos.
Caso alguma dessas janelas não esteja aparecendo, você pode usar as teclas de atalho:
Ctrl+R: Mostra o Project Explorer
F4: Mostra a janela de Propriedades
Ctrl+G: Mostra a Janela de Verificação Imediata
Essas três janelas são as que costumo manter abertas em tempo de design dos projetos.
Para mostrar o editor de códigos, basta dar um duplo clique sobre um dos itens do Project Explorer ou criar um novo módulo, explicado na seção a seguir.
Vale ressaltar que você não precisa habilitar todas essas janelas para desenvolver seu código. Apenas a de Editor de códigos é suficiente. Habilitar as outras janelas ou não é questão de gosto pessoal.
O Project Explorer
O Project Explorer merece atenção especial porque ele representa todos as classes de código do seu documento Office. Observe que existem Módulos, Módulos de Classe (clique aqui para saber mais sobre Módulos de Classe), Formulários e Objetos de Aplicação (que não são nada mais que um Módulo de Classe com algumas propriedades especiais). Neste exemplo, como a Aplicação é o Excel, os objetos de Aplicação correspodem ao documento de Excel, que é a Pasta de Trabalho e cada uma das Planilhas.
A seção a seguir ensina como criar um bloco de código simples.
Criar um Módulo no VBE
Um módulo é criado através do VBE. Para acessar o VBE, pressione ALT+F11 na tela principal de uma das aplicações Office para chegar na tela abaixo:

Pressione o botão direito em Microsoft Excel Objetos (ou Microsoft Word Objetos se estiver usando o Word, ou diretamente emVBAProject (Apresentação1) se estiver usando o PowerPoint, e assim por diante).

Dessa forma, no painel central visualiza-se uma janela com o cursor piscando que é onde deve-se inserir o código:

Após inserir o código, pressione F5 para executá-lo (o cursor de edição de texto deve ficar entre Sub e End Sub antes de se pressionarF5). Abaixo segue um exemplo:
Sub Olá() MsgBox "Olá Mundo!" End Sub
Note que o cursor de inserção piscante (de digitar texto) deve ficar entre Sub e End Sub no momento de se pressionar F5. Caso contrário, uma janela aparecerá perguntando ao usuário qual macro se deseja executar.
O resultado do código é mostrado abaixo:

Observe que quando o código está em execução o botão STOP e PAUSE ficam habilitados, e o PLAY (que equivale a apertar a tecla F5) fica desabilitado. O título do VBE também muda, acrecenta-se [executando] na barra. O resultado dessa macro é a exibição de uma mensagem caixa de texto (MsgBox) com o texto Olá Mundo.
Inserir Código num Objeto
É possível criar rotinas de automação em Objetos do Office. Quando digo Objetos, estou referindo-me à Planilhas, Gráficos, Documentos de texto, Apresentações de PowerPoint e assim por diante. O objetivo de se fazer isso é aproveitar os event handlers das Aplicações Office, ou seja, é possível que o usuário insira blocos de código quando ocorre um evento num Objeto. Um exemplo de evento é alterar uma célula de uma Planilha, por exemplo.
Suponha que queiramos que um usuário receba uma caixa de mensagem (MsgBox) sempre que alterar uma célula numa Planilha. Para tal, basta duplo clique no Objeto desejado, que suponhamos que seja Plan1. Ao fazer isso, uma tela idêntica aparecerá à quando adicionamos um módulo. A diferença se dá no conteúdo das duas caixas de listagem (ComboBox) logo acima do cursor piscante.
A caixa de listagem da esquerda contém os tipos de Objeto que essa folha específica possui (ou seja, para o caso de Plan1, apenas o Objeto Worksheet). A caixa de listagem da direita contém os eventos que o Objeto selecionado à esquerda possui:

Note a grande quantidade de eventos na caixa de listagem. O assunto é bem vasto.
Para cumprir nosso objetivo, devemos escolher o evento de alteração de célula numa Planilha, que é o Change. Veja que automaticamente o VBE cria um novo procedimento para inserirmos nosso código:

Note como o VBE nomeia o procedimento: tem-se o nome do Objeto (Worksheet), um sinal de underline (_) e o nome do evento(Change). Os argumentos seguintes (ByVal Target As Range) são os parâmetros de entrada do evento com os quais um programador possa trabalhar.
Insira, então, o código:
Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "A célula " & Target.Address & " foi alterada!" End Sub
Nota: Você pode apagar as linhas dos eventos que não possuem código, não há problema nenhum nisso. Por exemplo, o eventoWorksheet_SelectionChange, que deve ter sido criado automaticamente quando você selecionou o Objeto Worksheet na caixa de listagem da esquerda, pode ser apagado sem comprometer a execução de macros e funcionamento do Objeto em questão (que nesse caso é uma Planilha).
Volte à tela principal do Excel e experimente alterar uma célula e pressionar ENTER. A tela será mostrada:

Habilitar Todas as Macros Sem Notificação
Note que, ao abrir um Documento Office que possui macros, você verá a tela:

Clicando em Habilitar Macros, você poderá usar normalmente as macros do Documento. Se você não gosta dessa tela e não quer mais vê-la, e deseja habilitar todas as macros automaticamente, execute os passos abaixo.
Clique no menu Arquivo, botão Opções:

Em seguida, clique em Central de Confiabilidade e depois em Configurações da Central de Confiabilidade:

Em seguida, clique em Configurações de Macro e selecione a opção Habilitar todas as macros. Clique em OK para confirmar as alterações:

Como o texto da própria opção mostra, não é recomendável deixar essa opção marcada porque você corre o risco de abrir um documento Office com códigos maliciosos que podem trazer danos a seu computador. Só marque essa opção se você tiver certeza disso.
———
Voltar