Plano de Curso: Lógica de Programação & Automação com VBA

Público-alvo: Estudantes dos Cursos Técnicos em Administração, Logística, Informática e profissionais de Finanças e Engenharia.
Carga Horária: 20 Capítulos de Laboratório (40 a 60 horas-aula).
Metodologia: Aprendizagem Baseada em Problemas (PBL) com estudos de caso corporativos da transportadora fictícia FastLog S.A., culminando na criação do robô corporativo FastLog RPA Enterprise 1.0.


🎯 Visão Geral e Competências Desenvolvidas

Este curso foi estruturado para desenvolver o pensamento algorítmico e a automação robótica de processos (Office RPA), capacitando o estudante a construir ferramentas corporativas de alta performance diretamente no ambiente Microsoft Excel/VBA.

Ao final do curso, o aluno será capaz de:

  1. Navegar e dominar o ambiente VBE (Visual Basic Editor), estruturando módulos, sub-rotinas e funções.
  2. Aplicar tipagem estática rigorosa (Option Explicit, Dim) e depurar scripts linha a linha com a tecla F8.
  3. Manipular o Modelo de Objetos do Excel (Application, Workbooks, Worksheets, Range, Cells) sem comandos de seleção.
  4. Construir algoritmos de alta velocidade usando varredura inversa (Step -1) e coleções (For Each).
  5. Processar grandes volumes de dados na memória RAM usando vetores dinâmicos e matrizes bidimensionais.
  6. Desenvolver funções personalizadas de planilha (UDFs) e formulários gráficos desktop profissionais (UserForms).
  7. Automatizar fluxos orientados a eventos (Worksheet_Change, Workbook_Open) com tratamento de exceções (On Error GoTo).
  8. Integrar o Excel a arquivos do sistema operacional (FileSystemObject), e-mails corporativos (Outlook) e bancos de dados relacionais (Access via ADODB/SQL).

📚 Estrutura Programática Detalhada

🧱 Módulo 1: O Ambiente VBE, Modelo de Objetos & Fundamentos do VBA (Cap. 01 a 04)

Capítulo 01: Introdução ao VBA, Ambiente VBE e o Gravador de Macros

  • Teoria: O que é o Visual Basic for Applications; diferença entre macro gravada e código programado; o ambiente VBE (Alt + F11); Janela de Projeto e Janela de Propriedades; a extensão .xlsm e políticas de segurança de macros.
  • Prática (Atividade 01): Configuração da guia Desenvolvedor; gravação de macro de limpeza e formatação de relatório bruto exportado do ERP; análise crítica do código gerado e eliminação de comandos desnecessários (Select e Selection).
  • Elemento no Projeto: Módulo de higienização de dados de entrada da FastLog.

Capítulo 02: Tipagem Estática, Declaração Rigorosa (Dim) e Operadores

  • Teoria: A diretiva de ouro Option Explicit; declaração de variáveis com Dim; tabela de tipos primitivos (Long, Double, String, Boolean, Date, Currency); constantes (Const); operadores matemáticos (\, Mod, ^) e de concatenação (&).
  • Prática (Atividade 02): Script de cálculo do frete unitário e custos de seguro de carga com variáveis tipadas; uso da Janela de Verificação Imediata (Ctrl + G) e depuração linha a linha com F8.
  • Elemento no Projeto: Módulo de cálculo matemático de tarifas.

Capítulo 03: O Modelo de Objetos do Excel (Application, Workbook, Worksheet, Range)

  • Teoria: Hierarquia de objetos corporativos; a tríade: Objetos, Propriedades e Métodos; referenciando células por coordenada com Range("A1") versus notação matricial com Cells(linha, coluna).
  • Prática (Atividade 03): Script que cria uma nova aba na pasta de trabalho, renomeia dinamicamente, formata bordas, define cores de preenchimento (Color = RGB(...)) e insere dados sem selecionar a tela.
  • Elemento no Projeto: Construtor automático de abas de expedição.

Capítulo 04: Interação com o Usuário e Sanitização de Strings

  • Teoria: Caixas de diálogo MsgBox (botões Sim/Não, ícones de alerta e captura de respostas vbYesNo) e InputBox; funções de texto nativas do VBA (UCase, LCase, Trim, Left, Right, Mid, InStr, Len).
  • Prática (Atividade 04): Assistente interativo de cadastro rápido de motoristas que solicita dados via InputBox, sanitiza espaços duplos e formata o CPF/CNPJ antes de gravar na planilha.
  • Elemento no Projeto: Validador e coletor de dados operacionais.

⚙️ Módulo 2: Estruturas de Decisão, Laços e Varredura de Alta Velocidade (Cap. 05 a 08)

Capítulo 05: Estruturas Condicionais Complexas (If...Then...Else e Select Case)

  • Teoria: Bifurcações lógicas; If...Then...ElseIf...End If; operadores lógicos (And, Or, Not); a estrutura de escolha múltipla Select Case para classificação de categorias e rotas.
  • Prática (Atividade 05): Algoritmo classificador de prioridade de despacho aduaneiro (Carga Perigosa, Refrigerada, Frágil ou Padrão) com validação de limites de velocidade de frotas.
  • Elemento no Projeto: Motor de regras de transporte da FastLog.

Capítulo 06: Laços Determinísticos (For...Next) e Varredura Reversa (Step -1)

  • Teoria: Repetições finitas com contador; a cláusula Step; o algoritmo crítico da varredura inversa (Step -1) para exclusão de linhas na planilha sem corrupção de índices.
  • Prática (Atividade 06): Robô de auditoria que percorre 500 linhas de fretes da filial, calcula juros por dia de atraso e elimina automaticamente pedidos cancelados usando Step -1.
  • Elemento no Projeto: Motor de varredura e limpeza da base de fretes.

Capítulo 07: Laços Condicionais (Do While / Do Until) e Encontrando a Última Linha

  • Teoria: Repetições baseadas em sentenças booleanas; o algoritmo universal de cálculo da última linha preenchida na planilha: UltimaLinha = Cells(Rows.Count, "A").End(xlUp).Row.
  • Prática (Atividade 07): Script de importação contínua de registros que lê dados até encontrar uma célula vazia, apurando o saldo acumulado de pagamentos.
  • Elemento no Projeto: Leitor automático de extratos bancários.

Capítulo 08: Coleções de Objetos (For Each) e Otimização de Performance

  • Teoria: Iterando sobre conjuntos de objetos (For Each ws In Worksheets, For Each cel In Range); técnicas de congelamento de tela para ganho de performance: Application.ScreenUpdating = False, Calculation = xlCalculationManual.
  • Prática (Atividade 08): Macro ultra-rápida que padroniza o cabeçalho e protege com senha todas as 15 abas da pasta de trabalho em menos de 1 segundo.
  • Elemento no Projeto: Otimizador global e gestor de abas corporativas.

📊 Módulo 3: Vetores em Memória, Funções Personalizadas e Modularização (Cap. 09 a 12)

Capítulo 09: Vetores Unidimensionais Dinâmicos (ReDim, Preserve, UBound)

  • Teoria: Processamento de dados na memória RAM sem ler e escrever constantemente na planilha (aumento de 100x na velocidade); vetores estáticos vs. dinâmicos; as funções LBound, UBound e o comando ReDim Preserve.
  • Prática (Atividade 09): Armazenamento em vetor dos códigos de rastreamento pendentes, filtrando na memória apenas as carretas retidas em posto fiscal.
  • Elemento no Projeto: Gerenciador de fila de cargas prioritárias.

Capítulo 10: Matrizes Bidimensionais em Memória para Big Data no Excel

  • Teoria: Carregando uma planilha inteira para uma matriz em memória com uma única linha: matriz = Range("A1:G10000").Value; iterando linhas e colunas na memória RAM; descarregando o resultado de volta na planilha em bloco.
  • Prática (Atividade 10): Algoritmo que processa 20.000 movimentações de combustível de frota em 0,3 segundos, calculando médias e divergências de consumo.
  • Elemento no Projeto: Processador de dados em lote de alta performance.

Capítulo 11: Modularização Profissional: Passagem de Parâmetros (ByVal e ByRef)

  • Teoria: Boas práticas de arquitetura de software; decomposição de macros gigantes em procedimentos reutilizáveis; passagem de parâmetros por valor (ByVal) protegendo o dado original versus referência (ByRef).
  • Prática (Atividade 11): Criação de uma biblioteca de procedimentos modulares: FormatarTabela(), RegistrarLog() e ExportarPDF(), reutilizadas por todo o sistema.
  • Elemento no Projeto: Biblioteca de utilitários centrais da FastLog.

Capítulo 12: Criação de Funções Personalizadas de Planilha (UDFs)

  • Teoria: Como criar fórmulas exclusivas com Function ... End Function; diferença entre Sub (executa ações) e Function (retorna valores); tornando a UDF visível no catálogo de fórmulas do Excel.
  • Prática (Atividade 12): Criação da função =CALCULARFRETE(distancia; peso; tipoCarga) e da função =VALIDARCNPJ(cnpj) utilizáveis diretamente nas células da planilha.
  • Elemento no Projeto: Funções de cálculo customizadas para a equipe administrativa.

🖥️ Módulo 4: Formulários Gráficos (UserForms) e Eventos Automatizados (Cap. 13 a 16)

Capítulo 13: Interface Gráfica Corporativa: Construção de UserForms

  • Teoria: O conceito de telas no VBA (UserForms); Caixa de Ferramentas (Toolbox); Controles básicos: Rótulos (Label), Caixas de Texto (TextBox) e Botões de Comando (CommandButton); alinhamento e tabulação (TabIndex).
  • Prática (Atividade 13): Desenvolvimento da janela gráfica de Cadastro de Fretes e Cargas da FastLog, impedindo que o operador digite diretamente na planilha.
  • Elemento no Projeto: Tela de entrada de dados do operador.

Capítulo 14: Controles Avançados: Listas Suspensas (ComboBox) e Painéis (ListBox)

  • Teoria: Populando listas dinâmicas com métodos .AddItem e .RowSource; caixas de seleção (CheckBox) e botões de opção (OptionButton); exibição de relatórios em tempo real dentro do UserForm com ListBox.
  • Prática (Atividade 14): Formulário de despacho onde o operador seleciona o cliente em uma lista suspensa com auto-completar e visualiza os fretes recentes em uma tabela interna na janela.
  • Elemento no Projeto: Console interativo de despacho.

Capítulo 15: Automação Orientada a Eventos de Planilha e Pasta de Trabalho

  • Teoria: O que são eventos disparados por ações do usuário; o objeto ThisWorkbook e eventos Workbook_Open, Workbook_BeforeSave; o evento de alteração de células Worksheet_Change com o argumento Target.
  • Prática (Atividade 15): Programação de rotina que: (1) ao abrir a pasta, exibe mensagem com resumo de contas a pagar do dia; (2) ao digitar um código de cliente em qualquer célula, preenche automaticamente os dados cadastrais.
  • Elemento no Projeto: Gatilhos reativos e automáticos do sistema.

Capítulo 16: Tratamento Robusto de Exceções e Auditoria de Erros

  • Teoria: Por que sistemas quebram; a instrução On Error GoTo Rotina_Erro; a instrução On Error Resume Next (quando e como usar com segurança); o objeto Err (Err.Number, Err.Description); gravação de arquivos de log de auditoria em disco.
  • Prática (Atividade 16): Blindagem completa de uma macro contra arquivos inexistentes, divisões por zero e campos em branco, registrando incidentes em arquivo .txt oculto.
  • Elemento no Projeto: Módulo de segurança operacional e resiliência a falhas.

🌐 Módulo 5: Interoperabilidade do Office, Banco de Dados e Projeto Final (Cap. 17 a 20)

Capítulo 17: Manipulação de Arquivos e Pastas do Windows via FileSystemObject

  • Teoria: A biblioteca do Windows Scripting.FileSystemObject (FSO); verificação de pastas e arquivos (FolderExists, FileExists); criação de arquivos de texto .csv e .txt via código VBA (CreateTextFile, WriteLine).
  • Prática (Atividade 17): Robô que cria automaticamente pastas nomeadas por Ano/Mês no disco C:\ e exporta o espelho das ordens de frete em formato CSV padronizado para a Receita Federal.
  • Elemento no Projeto: Exportador de arquivos e integrador com o sistema de arquivos.

Capítulo 18: Automação Integrada com Microsoft Outlook (Disparo em Lote)

  • Teoria: O conceito de Interop (comunicação entre softwares do pacote Office); a biblioteca Outlook.Application; criação de mensagens MailItem; formatação de e-mails em HTML (.HTMLBody) e anexo automático de relatórios em PDF gerados pelo Excel (.Attachments.Add).
  • Prática (Atividade 18): Robô de faturamento que gera faturas em PDF individuais para cada cliente da planilha e dispara os e-mails personalizados automaticamente pelo Outlook em lote.
  • Elemento no Projeto: Robô de cobrança e notificação automatizada da FastLog.

Capítulo 19: Conexão Direta com Banco de Dados Relacional via ADODB e SQL

  • Teoria: Superando as limitações do Excel; a biblioteca Microsoft ActiveX Data Objects (ADODB); abrindo conexões com bancos de dados (ADODB.Connection) com bancos Access (.accdb) ou SQL Server; executando comandos SELECT, INSERT e UPDATE via VBA.
  • Prática (Atividade 19): Script no Excel que se conecta ao arquivo SIG_FastLog_Dados.accdb (criado nas aulas de SGBD), busca todas as peças abaixo do estoque mínimo e preenche a planilha instantaneamente via CopyFromRecordset.
  • Elemento no Projeto: Conector do Excel ao Banco de Dados do SIG.

Capítulo 20: Projeto Integrador Final: Robô Corporativo FastLog RPA Enterprise 1.0

  • Teoria: Automação Robótica de Processos (RPA); arquitetura de um robô corporativo completo; checklist de auditoria de código, homologação e distribuição com atalhos de teclado e fita de opções (Ribbon Customization).
  • Prática (Atividade 20): Entrega do sistema unificado: UserForm de entrada ➔ Validação de regras de negócio ➔ Persistência no banco Access via ADODB ➔ Emissão do comprovante de despacho em PDF ➔ Disparo de e-mail ao cliente via Outlook ➔ Atualização em tempo real do Dashboard executivo com uma única instrução!
  • Elemento no Projeto: Go-Live e certificação do Robô de Gestão e Automação da FastLog.