Capítulo 01: O Ambiente VBE, Módulos e Refatoração do Gravador de Macros

🎯 Objetivo da Aula

Nesta aula, você dará os primeiros passos no universo da Automação de Processos Empresariais (RPA) utilizando o VBA (Visual Basic for Applications) no Microsoft Excel. No laboratório de informática, você aprenderá a habilitar as ferramentas de desenvolvimento, navegar pelo VBE (Visual Basic Editor), compreender a estrutura fundamental de um procedimento Sub e transformar códigos poluídos gerados pelo gravador de macros em scripts profissionais, rápidos e sem comandos redundantes de seleção.

Ao final desta aula, você será capaz de criar sua primeira macro corporativa e acioná-la com um único clique de botão na planilha da FastLog.


🏢 Cenário Prático (FastLog S.A.)

Empresa: FastLog Transportes & Logística Integrada S.A.
Problema: Toda manhã, às 06h30, a equipe da portaria exporta um relatório bruto do sistema de cancelas em formato de planilha. Para apresentar o documento à gerência, o assistente gastava 35 minutos formatando larguras de colunas, pintando cabeçalhos de azul, centralizando placas e aplicando negrito linha por linha. Um estagiário tentou usar o “Gravador de Macros”, mas o código gerado ficou com mais de 70 linhas cheias de comandos Select e rolagem de tela (ActiveWindow.SmallScroll), fazendo a tela piscar descontroladamente e travando os computadores mais antigos da guarita.
Sua Missão: Como especialista em automação e TI, você abrirá o editor de código do Excel e construirá o procedimento FormatarRelatorioPortaria. Você eliminará os comandos de seleção inúteis e conectará a macro a um botão corporativo, reduzindo o tempo da tarefa diária de 35 minutos para 0,2 segundo.


🧠 Fundamentos: A Teoria Traduzida

1. O que é o VBA e o VBE?

O VBA (Visual Basic for Applications) é uma linguagem de programação orientada a eventos embutida nativamente nos aplicativos do Microsoft Office. O VBE (Visual Basic Editor) é o ambiente de desenvolvimento integrado (IDE) onde o código fonte é escrito, testado e depurado:

flowchart TD
    EXCEL["📊 Pasta de Trabalho (.xlsm)<br/>Interface Visual do Usuário"] <--> VBE["💻 Editor VBE (Alt + F11)<br/>Ambiente de Desenvolvimento"]
    
    subgraph ESTRUTURA["Arquitetura do VBE"]
        VBE --> P1["📁 Janela de Projeto (Project Explorer)<br/>Planilhas, EstaPasta_de_trabalho e Módulos"]
        VBE --> P2["⚙️ Janela de Propriedades (F4)<br/>Nomes, Cores e Visibilidade"]
        VBE --> P3["📄 Módulos Padrão (Inserir > Módulo)<br/>Onde residem as macros Sub e Function"]
    end

    style EXCEL fill:#217346,stroke:#fff,stroke-width:2px,color:#fff
    style VBE fill:#1a365d,stroke:#fff,stroke-width:2px,color:#fff
    style ESTRUTURA fill:#2c3e50,stroke:#fff,stroke-width:2px,color:#fff
    style P1 fill:#2980b9,stroke:#fff,stroke-width:2px,color:#fff
    style P2 fill:#8e44ad,stroke:#fff,stroke-width:2px,color:#fff
    style P3 fill:#27ae60,stroke:#fff,stroke-width:2px,color:#fff

2. A Segurança e a Extensão .xlsm

Por padrão, arquivos comuns do Excel salvos como .xlsx não possuem permissão para armazenar códigos executáveis, como medida de proteção cibernética contra vírus.

  • Sempre que uma pasta de trabalho contiver macros em VBA, ela deve ser salva obrigatoriamente no formato: Pasta de Trabalho Habilitada para Macro do Excel (.xlsm).

3. A Estrutura de um Procedimento Sub

Um procedimento executável (rotina) inicia com a palavra-chave Sub e encerra com End Sub:

1
2
3
4
Sub NomeDoProcedimento()
    ' As linhas iniciadas com apóstrofo são comentários e não são executadas
    Range("A1").Value = "FastLog S.A."
End Sub

4. O Vício do Gravador de Macros vs. Código Profissional

O gravador de macros é um excelente “dicionário” para descobrir nomes de propriedades, mas é um péssimo programador:

  • Código do Gravador (Lento e Amador):
    1
    2
    3
    4
    
    Range("A1:E1").Select
    Selection.Font.Bold = True
    Range("A1:E1").Select
    Selection.Interior.Color = 65535
  • Código Refatorado (Rápido e Profissional):
    1
    2
    3
    4
    
    With Range("A1:E1")
        .Font.Bold = True
        .Interior.Color = RGB(0, 51, 102)
    End With
    (O bloco With ... End With executa múltiplas operações sobre o mesmo objeto sem precisar selecioná-lo na tela!).

📖 Exemplo Guiado: Passo a Passo no Laboratório

No computador do laboratório, inicie abrindo uma nova pasta de trabalho do Excel.

Passo 1: Habilitando a Guia Desenvolvedor

  1. No Excel, clique no menu superior Arquivo ➔ Opções.
  2. Na barra lateral esquerda, clique em Personalizar Faixa de Opções.
  3. Na coluna da direita (Guias Principais), localize e marque a caixinha: ☑ Desenvolvedor.
  4. Clique em OK. A guia Desenvolvedor surgirá no topo do Excel!

Passo 2: Acessando o VBE e Inserindo o Primeiro Módulo

  1. Pressione o atalho de teclado: Alt + F11 (ou clique no botão Visual Basic na guia Desenvolvedor).
  2. Na janela que se abre, acesse o menu superior Inserir ➔ clique em Módulo.
  3. Uma folha em branco com o título Módulo1 (Código) será aberta no centro da tela. É aqui que digitaremos nosso script!

🛠️ Prática Obrigatória 1: Digitação do Script de Formatação e Execução com F8

Agora você criará o procedimento oficial que formata os relatórios diários de cancela da transportadora.

Passo a Passo no Computador:

  1. No módulo de código em branco, digite exatamente a rotina abaixo:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    Sub FormatarRelatorioPortaria()
        ' Cabeçalho Institucional da Portaria FastLog
        With Range("A1:E1")
            .Font.Name = "Segoe UI"
            .Font.Size = 11
            .Font.Bold = True
            .Font.Color = RGB(255, 255, 255)            ' Texto Branco
            .Interior.Color = RGB(0, 51, 102)           ' Azul Petróleo FastLog
            .HorizontalAlignment = xlCenter             ' Alinhamento Centralizado
        End With
    
        ' Ajuste Automático de Largura das Colunas
        Columns("A:E").AutoFit
    End Sub
  2. Preparação dos Dados de Teste na Planilha:
    • Volte à planilha do Excel clicando no ícone do Excel ou pressionando Alt + F11.
    • Na linha 1, digite os cabeçalhos desformatados:
      • A1: ID_Veiculo | B1: Placa_Cavalo | C1: Motorista_Responsavel | D1: Data_Entrada | E1: Status_Portaria
    • Digite uma linha de teste em A2:E2:
      • VEI-101 | ABC-1234 | Carlos Eduardo Mendes | 01/10/2026 06:45 | LIBERADO
  3. Depuração Passo a Passo com a Tecla F8:
    • Volte ao editor de código (Alt + F11).
    • Posicione o cursor do mouse dentro da palavra FormatarRelatorioPortaria.
    • Pressione a tecla F8 repetidamente.
    • Observe que uma linha amarela avança a cada toque de tecla e a planilha vai se transformando em tempo real no fundo sem nenhuma piscada de tela!

✅ Resultado Esperado (Prática 1):

A faixa A1:E1 recebe preenchimento azul corporativo escuro, texto branco em negrito e todas as colunas de A a E se ajustam perfeitamente à largura dos nomes digitados.


🛠️ Prática Obrigatória 2: Criação do Botão de Acionamento na Planilha

O operador da portaria não deve precisar abrir o editor Alt + F11. Criaremos um botão ergonômico na tela da planilha.

Passo a Passo no Computador:

  1. Na planilha do Excel, clique na guia superior Inserir ➔ Ilustrações ➔ Formas ➔ selecione Retângulo com Cantos Arredondados.
  2. Desenhe o botão sobre as células G1:H2.
  3. Com o botão selecionado, digite o texto: ⚡ FORMATAR RELATÓRIO.
  4. Formate a forma: Preenchimento Verde Corporativo (#27AE60), Texto Branco, Negrito e Centralizado.
  5. Vinculando a Macro ao Botão:
    • Clique com o botão direito do mouse sobre a borda da forma geométrica.
    • No menu de contexto, clique em Atribuir Macro…
    • Na lista que se abre, clique sobre: FormatarRelatorioPortaria.
    • Clique em OK.
  6. Desfaça a formatação da linha 1 (pinte de branco e tire o negrito) para testar.
  7. Clique sobre o botão verde com o mouse.
  8. Observe o relatório se auto-formatar em milissegundos com um único clique!

✅ Resultado Esperado (Prática 2):

O cursor do mouse vira uma mãozinha 👆 ao passar sobre o botão e a macro executa a rotina inteira em menos de 0,1 segundo.


📤 Instruções de Entrega (Microsoft Teams)

  1. No Excel, acesse Arquivo ➔ Salvar Como.
  2. Na pasta do seu computador, selecione o tipo: Pasta de Trabalho Habilitada para Macro do Excel (*.xlsm). (Atenção: Se salvar como .xlsx, o código VBA será deletado permanentemente!).
  3. Nomeie o arquivo como: Atividade_01_VBA_SeuNome_SeuSobrenome.xlsm.
  4. Abra o Microsoft Teams na equipe da disciplina.
  5. Acesse a tarefa: “VBA - Cap 01: Ambiente VBE e Primeira Macro”.
  6. Anexe o arquivo .xlsm e clique em Entregar (Turn In).

💡 Checkpoint de Gestão & TI

Parabéns pela sua primeira automação! No mundo empresarial, a eliminação de cliques repetitivos é o primeiro passo para a eficiência operacional. Ao substituir 35 minutos diários de formatação braçal por uma rotina de 0,2 segundo, a FastLog economiza mais de 150 horas de trabalho humano por ano apenas neste posto de trabalho, liberando o colaborador para tarefas analíticas e inspeção de notas fiscais.


🔥 Desafio de Fixação: Notificação com Caixa de Mensagem (MsgBox)

Adicione uma notificação elegante que avise o operador quando a formatação for concluída:

  1. Abra o editor VBA (Alt + F11).
  2. Antes da linha End Sub, adicione a instrução da caixa de diálogo:
    1
    
    MsgBox "Relatório da Portaria FastLog formatado com sucesso!", vbInformation, "Automação Concluída"
  3. Volte ao Excel e clique no botão verde.
  4. Observe surgir na tela uma caixa oficial do Windows com o ícone de informação azul (ℹ️) e o botão de confirmação OK!

🔑 Revelar Gabarito Oficial de Laboratório (Clique para expandir)
💡 Incentivo Pedagógico: Tente resolver as práticas e o desafio de fixação por conta própria antes de abrir o gabarito. Seus erros e tentativas durante o laboratório são a chave para a consolidação real do aprendizado!

Código Oficial do Módulo 1 (FormatarRelatorioPortaria):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
Sub FormatarRelatorioPortaria()
    ' 1. Estilização do Cabeçalho com o bloco With
    With Range("A1:E1")
        .Font.Name = "Segoe UI"
        .Font.Size = 11
        .Font.Bold = True
        .Font.Color = RGB(255, 255, 255)
        .Interior.Color = RGB(0, 51, 102)
        .HorizontalAlignment = xlCenter
    End With
    
    ' 2. Auto-ajuste de largura das colunas operacionais
    Columns("A:E").AutoFit
    
    ' 3. Notificação ao operador (Desafio de Fixação)
    MsgBox "Relatório da Portaria FastLog formatado com sucesso!", vbInformation, "Automação Concluída"
End Sub

📝 Atividade Extra: Questionário de Fixação (Caderno)

Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que você estudou neste capítulo. Ao concluir, apresente o caderno ao professor para conferência e visto.

  1. O que representa a sigla VBA e qual é a sua relação com os aplicativos do pacote Microsoft Office?
  2. No Cenário Prático da FastLog, por que o código gerado pelo “Gravador de Macros” fazia a tela dos computadores piscar e travar?
  3. Qual é o atalho oficial do teclado utilizado para abrir o editor de código VBE a partir do Excel?
  4. Por que arquivos contendo código VBA devem ser salvos obrigatoriamente com a extensão .xlsm em vez da extensão padrão .xlsx?
  5. Qual é a finalidade da estrutura With ... End With na escrita de códigos VBA profissionais?
  6. Como representamos um comentário explicativo no código VBA para que aquela linha não seja executada pelo computador?
  7. Qual é a função da tecla de atalho F8 dentro do editor do Visual Basic?
  8. Na Prática Obrigatória 1, qual código de cores RGB foi configurado para o fundo azul do cabeçalho da FastLog?
  9. Como associamos uma macro criada no VBE a uma forma geométrica (botão) na planilha?
  10. No Desafio de Fixação, qual comando foi inserido antes do End Sub para emitir um alerta sonoro e visual de conclusão na tela?