VBA + Excel

Exemplos de Códigos VBA


Excel Automation Tool

AutoMacro: VBA Add-in com Centenas de Exemplos de Códigos VBA Prontos Para Uso e Muito Mais!


Procure na lista abaixo exemplos de códigos Excel VBA gratuitos e completos com explicações.
Alguns incluem também arquivos para download. Estes Scripts & Macros Excel VBA são desenvolvidos profissionalmente e estão prontos para uso.

Esperamos que você ache esta lista útil!

Visite nossa página de exemplos de código VBA em inglês para encontrar mais de 500 artigos

Exemplos de códigos VBA
Tutoriais Detalhadosyes
PowerPoint VBA – Exemplos e Tutoriais de Macros
Classificando Dados no Excel VBA
Usando Localizar e Substituir no Excel VBA
Exemplos de macros do Word e tutorial VBA
Fundamentosyes
VBA If, ElseIf, Else (Guia Definitivo para Declarações Condicionais If)
VBA Colar Valor & Colar Especial
VBA – Recortar, Copiar, Colar a Partir de uma Macro
VBA Save File – 20 Exemplos fáceis
Conceitos de Codificação VBAyes
Comentários no VBA
VBA – Como Renomear ou Excluir um Módulo ou Formulário
VBA – Retornar um Valor de um Subprocedimento
VBA – Chamada de Função a Partir de uma Sub
Função VBA – Chamada, Retorno de Valor e Parâmetros
VBA On Error – Melhores Práticas de Tratamento de Erros
VBA – Instrução Select Case
VBA – Ocultar uma Macro
VBA – Modificar o Menu do Botão Direito do Mouse para Chamar uma Macro
VBA – Executar uma Macro a Partir de uma Macro
VBA – Executar uma macro linha a linha
VBA – Esperar, Atrasar, Criar um Cronômetro Durante a Execução do Código
VBA – Debug.Print e a Janela Verificação Imediata
VBA – DoEvents
VBA – Comando End (Fim)
VBA – Sair da Subfunção ou Função
VBA – Em Caso de Erro, Sair da Sub
VBA – Aumentar a Velocidade e Outras Práticas Recomendadas
Laçosyes
VBA For Loop – Loop em um Intervalo de Células
Excel VBA Loops – For Each, For Next, Do While, Aninhados e Mais
VBA – Exemplos de For Each (Referência Rápida)
VBA – Saída de Loop For
VBA – Sair do Loop
Faixas e Célulasyes
Excel VBA – Intervalos e Células
Excel – VBA – Fórmulas – O guia definitivo
Excel VBA – União e Intersecção
Excel VBA – Redimensionar Intervalo
VBA – Preenchimento Automático com uma Macro
VBA – Alterar a Cor de Fundo de uma Célula
VBA – ClearFormats – Remover Formatação Para Cada Célula no Intervalo
VBA – Formatação Condicional – Destacar Duplicatas em um Intervalo
VBA – Determinar a Coluna Inicial e Final de uma Célula Mesclada
VBA – Localizar o Valor Máximo de Cada Coluna em um Intervalo
VBA – Pincel de Formatação
VBA – Obter a Coluna ou Linha da Célula Ativa
VBA – Redimensionar um Objeto para o Tamanho de um Intervalo
VBA – Selecionar Todas as Células
VBA – Somar por Cor
VBA – Testar se a Seleção é um Intervalo ou um Objeto
VBA Valor da Célula – Obter, Definir ou Alterar
VBA ClearContents / Limpar Células
VBA Copiar Destino (Copiar Intervalo Para Outra Planilha)
VBA – Região Atual
VBA – Intervalo Dinâmico
Função VBA – Preenchimento de um Intervalo com Valores Aleatórios
VBA – Destacar Célula
VBA – Mesclar Células e Desfazer a Mesclagem de Células
VBA Deslocar Intervalo ou Célula
VBA – Endereço de Intervalo/Célula
Propriedade Range.End (xlDown, xlUp, xlToRight, xlToLeft) do VBA
VBA Selecionar Intervalo / Células
VBA Union – Unir Vários Intervalos
VBA – Quebrar Texto Automaticamente
VBA – Offset da ActiveCell
Linhas e Colunasyes
VBA – Selecionar (e Trabalhar com) Linhas e Colunas Inteiras
Excluir ou Inserir Linhas com Base no Valor da Célula
Excluir Linhas que Atendem a Determinados Critérios no VBA
Ocultar / Reexibir Colunas e Linhas
Reexibir Todas as Linhas/Colunas
VBA – Ajuste Automático de Colunas
VBA – Contar as Linhas de uma Seleção
VBA – Excluir Linhas em Branco
VBA – Selecionar Colunas Não Contíguas
Copiar / Colar Linhas e Colunas em VBA
VBA – Excluir Linha ou Coluna Inteira
VBA – Agrupar Linhas e Colunas
Inserir Linha ou Coluna com VBA
VBA – Definir Largura da Coluna ou Altura da Linha
VBA Used Range – Contagem do Número de Linhas ou Colunas Usadas
Planilhasyes
Planilhas VBA – O Guia Definitivo
VBA – Contar as Planilhas Numa Pasta de Trabalho
VBA – Criar um Menu de Hiperlinks de Planilhas
VBA – Ocultar (ou Reexibir) uma Planilha
VBA – Ocultar Guias de Planilha
VBA – Como Utilizar as Funções de Planilha (e uma Lista Completa)
VBA – Percorrer Todas as Planilhas com For Each
VBA – Macro Para Listar Todas as Planilhas em uma Pasta de Trabalho
VBA – Enviar planilhas por e-mail como pastas de trabalho separadas
VBA – Reexibir Todas as Planilhas
VBA Limpar Toda a Planilha
VBA Copiar Planilha
VBA – Excluir ou Limpar Planilha
VBA Obter Nome da Planilha / Renomear Planilha
VBA – Proteger / Desproteger Planilhas
Rotina VBA para adicionar e nomear planilhas
Selecionar Planilha, Ativar Planilha e Obter Planilha Ativa no VBA
Apostilasyes
VBA – Criar Novo Arquivo (Workbooks.Add)
VBA – ActiveWorkbook versus ThisWorkbook
VBA – Abrir/Fechar Pasta de Trabalho
VBA – Proteção de Pasta de Trabalho (Proteção/Desproteção por Senha)
VBA – Trabalhando com Pastas de Trabalho (Objeto Workbook)
Matrizesyes
VBA – Objetos de Dicionário
VBA Excel – Coleções
VBA ArrayList – Mega Guia Atualizado para 2022
VBA – Matriz dinâmica (Redim e Redim Preserve)
VBA – Declarar e Inicializar Matriz de Cadeia de Caracteres
VBA – Declarar (Dim), Criar e Inicializar uma Variável de Matriz
VBA – Comprimento/Tamanho da Matriz
VBA – Atribuir um Intervalo a uma Matriz
VBA – Limpar Matriz – Função Apagar
VBA Loop Através de uma Matriz / Percorrer Itens de uma Matriz
VBA – Classificar Matriz
VBA – Transpor Matriz
VBA – Procurar (Localizar) Valor em uma Matriz
VBA – Remover Duplicatas de uma Matriz
VBA – Função Retornar Matriz
VBA Arrays Multidimensionais (Arrays 2D)
VBA – Saída (Impressão) de Matriz para Intervalo
Errosyes
Excel VBA – Try Catch – Erros
VBA – Incompatibilidade de Tipos (Erro em Tempo de Execução 13)
VBA – Erro de Automação
VBA Erro 1004 – Erro Definido pelo Aplicativo ou pelo Objeto
VBA – Erro Memória Insuficiente
VBA – Erro de Compilação – É Impossível Localizar o Projeto ou a Biblioteca
Erro de Compilação em Módulo Oculto – VBA
Corrigir Erro 438 do VBA – O Objeto Não Aceita Essa Propriedade ou Método
Variáveisyes
VBA – Determinar o Tipo Básico de uma Variável
VBA – Variáveis de Matriz
VBA – Tipo de Dados Booleanos (Dim Variable)
VBA – Expressão Constante Obrigatória
VBA – Resumo dos Tipos de Dados – Variáveis e Constantes
VBA – Variável de Data
VBA – Tipo de dados Double (Dim Variable)
VBA – Variável Global
VBA – Tipo de Dados Int / Integer (Dim Variable)
VBA – Tipo de Dados Long (Dim Variável)
VBA – Variável Pública – Utilizar uma Variável em Vários Módulos ou Subs
VBA – Variáveis de Objeto de Intervalo (Dim / Set Range)
VBA – Definir Variáveis de Objeto – Pastas de Trabalho, Planilhas e Muito Mais
VBA – Tipo de Dados Single (Dim Variavel)
VBA – Tipo de Dados String (Dim Variable)
VBA – Tipo de Dados Variant (Dim Variavel)
Configuraçõesyes
VBA – Impedir Mensagens de Aviso de uma Macro
VBA – Desligar (ou Ligar) os Cálculos Automáticos
VBA – Desativar (ou Ativar) a Barra de Fórmulas
VBA – Desligar Atualização de Tela
VBA – Ativar ou Desativar as Barras de Rolagem
Textos e Stringsyes
Excel VBA – Dividir uma Cadeia de Caracteres em Células
Impedir que o VBA Diferencie Maiúsculas de Minúsculas – Option Compare Text
VBA – Extrair Número de uma Cadeia de Caracteres
VBA – Forçar Automaticamente Letras Maiúsculas, Minúsculas ou Primeiras Maiúsculas
VBA – Quebra de Linha ou Avanço de Linha em uma Caixa de Mensagem
VBA – Fazer um Loop Numa Cadeia de Caracteres
VBA – Remover Caracteres do Lado Esquerdo ou Direito de uma String de Comprimento Variável
Comparação de strings em VBA – StrComp
VBA – Diferente de, Maior que, Igual a e Outros Operadores de Comparação
VBA Converter Integer (Número) em String
VBA Função CDate – Converter Texto em Dados
Converter String (Texto) para Número no VBA
VBA INSTR – Localizar Texto em uma String
VBA – Operador Like
VBA – Operadores Lógicos – OR, AND, XOR, NOT, IS e LIKE
VBA Nova Linha / Retorno de Carro
VBA Função Space – Adicionar Espaços a uma Cadeia de Caracteres
VBA Funções de Texto
VBA – Texto para Colunas
VBA – Funções Trim, LTrim e RTrim – Remover Espaços do Texto
VBA – Funções de Maiúsculas e Minúsculas
Visualizaryes
ActiveWindow.WindowState
VBA – Exibir em (ou Sair de) Tela Cheia
VBA – Ocultar o Excel (Todo o Aplicativo)
VBA – Modo de Visualização de Quebra de Página Ativado ou Desativado
VBA – Rolagem Vertical e Horizontal
VBA – Zoom – Ajustar Seleção
VBA – Aumentar e Diminuir o Zoom das Planilhas
Arquivosyes
Usando o FileSystemObject no Excel VBA
Mover Arquivos com FileSystemObject (MoveFile) do VBA
VBA – Conversor Excel em CSV (Arquivo de Texto Delimitado por Vírgulas)
VBA – Criar arquivo de texto com CreateTextFile
VBA – Exportar Intervalo para CSV (Arquivo de Texto Delimitado)
VBA – Testar se a Pasta de Trabalho Está Aberta pelo Nome da Pasta de Trabalho
VBA – Gravar em arquivo de texto
VBA Verificar se o Arquivo ou Pasta Existe
VBA – Combinar Vários Arquivos do Excel em uma Pasta de Trabalho
VBA – Copiar uma Pasta com CopyFolder (FSO)
VBA – Copiar Arquivo / Pasta de Trabalho
VBA – Excluir Arquivo / Pasta de Trabalho
VBA – Instrução FileCopy
VBA – Obter Nome do Arquivo com GetFileName (FSO)
VBA GetFolder & GetFile (Obter Propriedades de Arquivos e Pastas)
VBA – Lista de Arquivos na Pasta
VBA – Caixa de Diálogo Abrir Arquivo
VBA Renomear Arquivo
Formas, Gráficos, Objetosyes
VBA – Auto Filtro
VBA Guia para Gráficos e Diagramas
VBA – Guia para Tabelas Dinâmicas
VBA – Objetos
VBA – Criar um Gráfico de Barras
VBA – Desenhar Caixas de Forma Programática com Código
VBA Caixa de Listagem – Item Selecionado
VBA – Tabelas e ListObjects
Formataçãoyes
Uso da Formatação Condicional com o Excel VBA
VBA – Negrito
VBA – Bordas de Células
VBA Fonte da Célula – Mudar Cor, Tamanho, Estilo e Mais
VBA Centralizar Texto – Alinhamento de Células (Horizontal e Vertical)
VBA – Configuração de Exibição de Quebras de Página
VBA – Formatar Células
Dados do Formatar VBA
Eventosyes
Eventos do Excel VBA
VBA – Sair sem Prompt para Salvar
VBA – Forçar uma Pasta de Trabalho a Salvar Antes de Fechar
VBA – Executar uma Macro Quando o Excel Fechar – Auto_Close
VBA – Executar uma Macro Quando o Excel For Iniciado
VBA – Evento de Alteração de Planilha – Executar uma Macro Quando uma Célula é Alterada
UserForms, MsgBoxes & Controlsyes
VBA – Caixa de Mensagens Sim Não (Msgbox)
VBA InputBox – Obter Entrada de um Usuário
Botão de Opção Excel VBA
VBA – Botão de Rotação Excel
VBA – Caixa de Seleção
VBA Caixa de Combinação
VBA Caixa de Listagem
VBA – Abrir ou Fechar UserForm
Formataçãoyes
Uso da Formatação Condicional com o Excel VBA
VBA – Negrito
VBA – Bordas de Células
VBA Fonte da Célula – Mudar Cor, Tamanho, Estilo e Mais
VBA Centralizar Texto – Alinhamento de Células (Horizontal e Vertical)
VBA – Configuração de Exibição de Quebras de Página
VBA – Formatar Células
Dados do Formatar VBA
Misc.yes
Excel VBA – Limpar Área de Transferência
Excel VBA – Pausa (Break/Stop) e Retomada de uma Macro
Excel VBA – Salvar Como (Imprimir) em PDF
Excel VBA: Lista de Códigos ColorIndex e Cores RGB
Excel VBA – Formatação de Números
Como Instalar (ou Desinstalar) um Suplemento VBA (Arquivo .xlam) para o Microsoft Excel
Removendo Valores Duplicados no Excel com VBA
VBA – Adicionar ou Remover Comentários de Células
VBA – Obter a Data de Hoje (Data Atual)
VBA – Filtro de Tabela Dinâmica
VBA – Atualizar Tabela Dinâmica / Todas as Tabelas Dinâmicas
VBA – Uso do Goal Seek no VBA
VBA – Usando Ferramentas de Análise no VBA
VBA Application.CutCopyMode = False – O que é?
VBA Calculate – Agora, Pasta de Trabalho, Planilha ou Intervalo
VBA – Chamar/Executar uma Sub a Partir de Outra Sub
VBA Copiar para a Área de Transferência
VBA Localizar Valor na Coluna
VBA – GoTo: Ir para um Rótulo de Linha
VBA – Função IIF
VBA – Instrução Line Input
VBA – Múltiplas Instruções If (Aninhadas)
VBA – Solver
VBA – Funções Wait e Sleep – Código VBA de Pausa/Atraso
Qual é a diferença entre VB e VBA?
VBA – Verificar Ortografia
VBA – Desativar AutoFiltro / Limpar Filtros
VBA – Lista Suspensa (Validação de Dados)
VBA – Hiperlinks
VBA – Número Aleatório
Funçõesyes
Função Verificar se a Planilha e/ou o Intervalo Existe
Função IsEmpty no VBA
Uso de Isnumeric e Isnumber no VBA
VBA – Comparar dados
VBA – Função Abs
VBA Média – AVERAGE, AVERAGEA, AVERAGEIF
VBA COUNT (Função Contar)
Funções COUNTIF e COUNTIFS no VBA
Funções de dados em VBA
VBA – Função DateAdd
VBA – Função DateDiff
VBA – Funções de Ambiente
VBA – Função EOF
VBA – Função FileDateTime
VBA – Filtrar matrizes
VBA – Função Format
Função VBA para Mostrar a Fórmula da Célula
VBA – Lista de funções
VBA – Função InStrRev – Localizar Texto a Partir da Direita
VBA – Função Join
VBA – Função Len – Obter o Comprimento da Cadeia de Caracteres
VBA – Função Mid – Extrair Caracteres do Meio de um Texto
VBA – Instrução MkDir
VBA – Declaração de Impressão (Print)
VBA – Função Right – Extrair Texto da Direita
Funções Round, RoundUp e RoundDown em VBA
VBA – Função Split – Dividir uma Sequência de Caracteres de Texto em uma Matriz
Função Sum (Somar Intervalos, Colunas & Mais) em VBA
Funções SOMASE e SOMASES no VBA
VBA – Funções UBound e LBound
Vlookup – Múltiplos Resultados com VBA
Programação Avançadayes
VBA – Exemplos Avançados de Programação
VBA – Vinculação Antecipada e Tardia
VBA – Tutorial e Exemplos de Módulo de Classe
VBA – Matriz – Criar e Muito Mais
VBA – Expressões Regulares (Regex)
VBA – SendKeys – Enviar Pressionamentos de Teclas
VBA – Função Timer
Internetyes
Automatização do Internet Explorer (IE) usando VBA
VBA – WinHttpRequest com Login e Senha – Misc Bloglines
VBA – Enviar e-mails do Excel pelo Gmail
VBA Enviar e-mails do Excel para o Outlook
Acessoyes
Palavrayes

AI Formula Generator

Experimentar gratuitamente


Exemplos de Macro Excel

Abaixo você encontrará uma lista de exemplos básicos de macro para tarefas comuns de automação do Excel.

Copiar e Colar uma Linha de uma Planilha Para Outra

Esta macro super simples copiará uma linha de uma planilha para outra.

Sub Colar_UmaLinha()
'Copiar e Colar Linha
Sheets("Planilha1").Range("1:1").Copy Sheets("Planilha2").Range("1:1")

Application.CutCopyMode = False

End Sub

Enviar E-mail

Esta macro útil iniciará o Outlook, redigirá um e-mail e anexará o ActiveWorkbook.

Sub Enviar_Mail()
    Dim OutApp As Object
    Dim OutMail As Object
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .to = "test@test.com"
        .Subject = "Email de Teste"
        .Body = "Corpo da Mensagem"
        .Attachments.Add ActiveWorkbook.FullName
        .Display
    End With
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Listar Todas as Planilhas do Arquivo

Esta macro listará todas as planilhas em um arquivo.

Sub ListarPlanilhas()
    
    Dim ws As Worksheet
    Dim x As Integer
    
    x = 1
    
    ActiveSheet.Range("A:A").Clear
    
    For Each ws In Worksheets
        ActiveSheet.Cells(x, 1) = ws.Name
        x = x + 1
    Next ws
    
End Sub

Reexibir Todas as Planilhas

Esta macro irá reexibir todas as planilhas.

' Reexibe Todas as Planilhas
Sub ReexibirTodasPlanilhas()
    Dim ws As Worksheet
    
    For Each ws In ActiveWorkbook.Worksheets
        ws.Visible = xlSheetVisible
    Next ws
    
End Sub

Ocultar Todas as Planilhas, exceto a Ativa

Esta macro ocultará todas as planilhas, exceto a planilha ativa.

' Oculta todas as planilhas exceto a planilha ativa
Sub OcultarTodasExcetoPlanilhaAtiva()
    Dim ws As Worksheet
    
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> ActiveSheet.Name Then ws.Visible = xlSheetHidden
    Next ws
    
End Sub

Desproteger Todas as Planilhas

Este macro exemplo desprotegerá todas as planilhas de um arquivo.


' Desprotege todas as planilhas
Sub DesprotegerTodasPlanilhas()
    Dim ws As Worksheet
    
    For Each ws In Worksheets
        ws.Unprotect "senha"
    Next ws
    
End Sub

Proteger Todas as Planilhas

Esta macro protegerá todas as planilhas de um arquivo.

' Protege todas as planilhas
Sub ProtegerTodasPlanilhas()
    Dim ws As Worksheet
    
    For Each ws In Worksheets
        ws.protect "senha"
    Next ws
    
End Sub

Apagar Todas as Formas

Esta macro excluirá todas os formas em uma planilha.

Sub ApagarTodasFormas()

Dim ObterForma As Shape

For Each ObterForma In ActiveSheet.Shapes
  ObterForma.Delete
Next

End Sub

Excluir Todas as Linhas em Branco da Planilha

Este macro exemplo eliminará todas as linhas em branco de uma planilha.

Sub ApagarLinhasEmBranco()
Dim x As Long

With ActiveSheet
    For x = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(x)) = 0 Then
            ActiveSheet.Rows(x).Delete
        End If
    Next
End With

End Sub

Destacar Valores Duplicados na Seleção

Use esta macro simples para destacar todos os valores duplicados em uma seleção.


' Destacar Valores Duplicados na Seleção
Sub DestacarValoresDuplicados()
    Dim MeuIntervalo As Range
    Dim Celula As Range
    
    Set MeuIntervalo = Selection
    
    For Each Celula In MeuIntervalo
        If WorksheetFunction.CountIf(MeuIntervalo, Celula.Value) > 1 Then
            Celula.Interior.ColorIndex = 36
        End If
    Next Celula
End Sub

Destacar Números Negativos

Esta macro automatiza a tarefa de destacar números negativos.

' Destacar Números Negativos
Sub DestacarNumerosNegativos()
    Dim MeuIntervalo As Range
    Dim Celula As Range
    
    Set MeuIntervalo = Selection
    
    For Each Celula In MeuIntervalo
        If Celula.Value < 0 Then
            Celula.Interior.ColorIndex = 36
        End If
    Next Celula
End Sub

Destacar Linhas Alternadas

Esta macro é útil para destacar linhas alternadamente.

' Destacar linhas alternadas
Sub DestacarLinhasAlternadas()
    Dim Celula As Range
    Dim MeuIntervalo As Range
    
    Set MeuIntervalo = Selection
    
    For Each Celula In MeuIntervalo.Rows
        If Celula.Row Mod 2 = 1 Then
            Celula.Interior.ColorIndex = 36
        End If
    Next Celula
End Sub

Destacar as Células em Branco na Seleção

Esta macro básica destaca as células em branco em uma seleção.

' Destacar todas as células em branco na seleção
Sub DestacarCelulasEmBranco()
    Dim rng As Range
    
    Set rng = Selection
    rng.SpecialCells(xlCellTypeBlanks).Interior.Color = vbCyan
    
End Sub

Exemplos de Macros Excel VBA – Download gratuito

Criamos um suplemento gratuito de Exemplos de Códigos VBA (Macros). O add-in contém mais de 100 exemplos de macro prontos para uso, incluindo os exemplos de macro acima!

excel vba examples free download
Página de download

Excel Macro / VBA FAQs

Como escrever código VBA (Macros) em Excel?

Para escrever código VBA no Excel, abra o Editor VBA (ALT + F11). Digite “Sub HelloWorld”, pressione Enter, e você criou uma Macro! OU Copie e cole um dos procedimentos listados nesta página na janela de código.

O que é Excel VBA?

VBA é a linguagem de programação usada para automatizar o Excel.

Como usar VBA para automatizar o Excel?

Você usa VBA para automatizar o Excel ao criar Macros. Macros são blocos de código que completam certas tarefas.


Pratique o VBA

Você pode praticar VBA com nosso tutorial de VBA interativo.

practice vba macros