Os 116 Melhores Exemplos de Códigos VBA para Excel
Olá! Seja muito bem vindo(a) a mais uma aula! Neste post vou compartilhar os 116 melhores exemplos de códigos VBA, organizados por categorias, para que você possa implementar no seu trabalho e transformar a forma como utiliza o Excel.
Esta semana, enquanto preparava conteúdo para o blog, pensei em como os códigos VBA podem facilitar a vida de quem trabalha com Excel no dia a dia.
Já me vi em várias situações onde precisava repetir tarefas cansativas ou resolver problemas que poderiam ser resolvidos com um simples clique — e é exatamente aí que as macros entram em cena.
Além disso, esses códigos não são apenas para programadores experientes; pelo contrário, eles também podem ser super úteis para quem está começando no Excel e quer economizar tempo.
Se você nunca usou macros antes, não se preocupe! Aliás, vou te mostrar como começar do zero e, a partir disso, aproveitar todo o potencial que os códigos VBA para Excel oferecem. Então, vamos nessa?
Conteúdo do Post
- O que é um Código VBA e uma Macro?
- Como usar Códigos VBA no Excel?
- Lista dos 116 Melhores Exemplos de Macros VBA para Iniciantes
- Baixe o PDF com todos os Códigos
1. O que é um Código VBA e uma Macro?
Se você já ouviu falar em VBA e macros, mas nunca usou, relaxa que eu vou te explicar de um jeito simples.
Uma macro é como um “atalho inteligente” no Excel. É um conjunto de passos que você grava ou escreve para automatizar tarefas repetitivas.
Por exemplo, digamos que você sempre formata sua planilha de um certo jeito: ajusta as colunas, coloca um cabeçalho, aplica bordas… Com uma macro, você faz isso tudo com um clique só!
Agora, o VBA (Visual Basic for Applications) é a linguagem de programação usada para criar essas macros. Em outras palavras, é nele que você pode personalizar seus códigos e deixar o Excel ainda mais poderoso.
O mais legal é que você não precisa ser um programador expert para começar. Na verdade, muitos códigos VBA já estão prontos e você só precisa copiar, colar e usar.
Por exemplo, sabe aquele trabalho chato e repetitivo que parece não ter fim? Com códigos VBA e macros para Excel, você economiza tempo e ainda impressiona a galera mostrando o que é capaz de fazer no Excel.
Então, que tal ver como isso funciona na prática?
2. Como usar Códigos VBA no Excel?
Se você nunca utilizou macros antes, não se preocupe! Eu vou te guiar passo a passo para colocar qualquer código VBA em prática no Excel.
Antes de tudo, certifique-se de que a guia Desenvolvedor está ativada na faixa de opções do seu Excel. É por lá que você terá acesso ao Editor de VBA.
Agora que a guia está ativa, siga este passo a passo:
Acesse o Editor de VBA
Primeiramente, vá até a guia Desenvolvedor e clique em Visual Basic. Em seguida, isso abrirá o editor onde você pode gerenciar e adicionar os códigos.
Insira um Novo Módulo
Para começar, no lado esquerdo, na janela chamada VBAProject, clique com o botão direito no nome do seu arquivo (Pasta de Trabalho).
Em seguida, selecione a opção de inserir um novo módulo. Esse módulo funciona como um espaço em branco onde você vai colocar os seus códigos VBA para Excel.
Cole o Código VBA
Com o módulo aberto, basta colar o código que deseja usar. Para isso, copie o código de onde você encontrou (como neste post) e, em seguida, cole-o no editor. Depois disso, é só fechar o editor.
Execute a Macro
Agora, volte para a guia Desenvolvedor e clique no botão Macros. Em seguida, uma janela aparecerá mostrando todas as macros disponíveis no seu arquivo. Escolha a macro que você acabou de adicionar e, por fim, clique em Executar.
Dica Extra: Se você usa macros com frequência, vale a pena conhecer a Pasta Pessoal de Macros. Ela permite que você salve os códigos VBA para Excel e os utilize em qualquer planilha que abrir.
E pronto! Agora você já sabe como usar qualquer macro no Excel. É simples, não é?
Com isso, você pode automatizar várias tarefas e ganhar muito mais tempo no dia a dia. Então, vamos para os próximos exemplos?
3. Lista dos 116 Melhores Exemplos de Macros VBA para Iniciantes
Quando você começa a explorar o universo das macros, a quantidade de possibilidades pode até assustar. Mas calma, porque eu selecionei 116 exemplos incríveis de códigos VBA, organizados por categorias, para te ajudar a aproveitar ao máximo o Excel.
Esses códigos VBA para Excel são perfeitos para quem está começando, mas quer resultados rápidos e práticos.
Aqui você vai encontrar desde ações simples, como inserir números em sequência, até automações mais avançadas, como criar tabelas dinâmicas e gráficos de forma automática.
Bora conferir essa lista e deixar seu trabalho muito mais eficiente?
Códigos Básicos
1. Preencher uma coluna com números sequenciais
Este código preenche a primeira coluna da planilha com números de 1 a 100.
Sub PreencherSequencia()
For i = 1 To 100
Cells(i, 1).Value = i
Next i
End Sub
2. Limpar o conteúdo de uma planilha
Remove todo o conteúdo das células da planilha ativa, sem alterar a formatação.
Sub LimparPlanilha()
Cells.ClearContents
End Sub
3. Ajustar a largura de todas as colunas
Ajusta automaticamente a largura das colunas para caber o conteúdo.
Sub AjustarLarguraColunas()
Cells.EntireColumn.AutoFit
End Sub
4. Inserir a data atual em uma célula específica
Insere a data atual na célula A1 da planilha ativa.
Sub InserirDataAtual()
Range("A1").Value = Date
End Sub
5. Proteger a planilha com senha
Aplica proteção à planilha ativa utilizando a senha “1234”.
Sub ProtegerPlanilha()
ActiveSheet.Protect Password:="1234"
End Sub
6. Desproteger a planilha com senha
Remove a proteção da planilha ativa usando a senha “1234”.
Sub DesprotegerPlanilha()
ActiveSheet.Unprotect Password:="1234"
End Sub
7. Alterar o nome da planilha ativa
Renomeia a planilha ativa para “NovaPlanilha”.
Sub AlterarNomePlanilha()
ActiveSheet.Name = "NovaPlanilha"
End Sub
8. Selecionar todas as células da planilha
Seleciona todas as células da planilha ativa.
Sub SelecionarTudo()
Cells.Select
End Sub
9. Excluir linhas vazias na planilha
Verifica e exclui todas as linhas vazias da planilha ativa.
Sub ExcluirLinhasVazias()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange.Rows
If Application.WorksheetFunction.CountA(rng) = 0 Then
rng.Delete
End If
Next rng
End Sub
10. Salvar o arquivo automaticamente
Salva o arquivo atual sem exibir a janela de confirmação.
Sub SalvarArquivo()
ThisWorkbook.Save
End Sub
11. Alterar a cor de fundo de uma célula específica
Muda o fundo da célula B2 para amarelo.
Sub AlterarCorDeFundo()
Range("B2").Interior.Color = RGB(255, 255, 0)
End Sub
12. Inserir valores em uma tabela automaticamente
Preenche uma tabela de 10×5 com o produto da linha pelo número da coluna.
Sub PreencherTabela()
For i = 1 To 10
For j = 1 To 5
Cells(i, j).Value = i * j
Next j
Next i
End Sub
Códigos de Formatação
13. Alterar a cor de fundo da célula com base no valor
Este código altera a cor de fundo da célula A1 para vermelho se o valor for negativo e verde se for positivo.
Sub CorDeFundoBaseadoEmValor()
If Range("A1").Value < 0 Then
Range("A1").Interior.Color = RGB(255, 0, 0) ' Vermelho
Else
Range("A1").Interior.Color = RGB(0, 255, 0) ' Verde
End Sub
End Sub
14. Aplicar formatação de texto para maiúsculas
Esse código converte todo o texto na célula A1 para letras maiúsculas.
Sub Maiusculas()
Range("A1").Value = UCase(Range("A1").Value)
End Sub
15. Aplicar formatação de texto para minúsculas
Esse código converte todo o texto na célula A1 para letras minúsculas.
Sub Minusculas()
Range("A1").Value = LCase(Range("A1").Value)
End Sub
16. Alterar o estilo da célula para itálico
Aplica a formatação de itálico ao texto da célula B2.
Sub TextoItalicizado()
Range("B2").Font.Italic = True
End Sub
17. Adicionar uma borda inferior em uma célula
Este código adiciona uma borda inferior à célula A1.
Sub BordaInferior()
Range("A1").Borders(xlEdgeBottom).LineStyle = xlContinuous
End Sub
18. Definir uma célula como negrito e itálico
Este código aplica as formatações de negrito e itálico à célula A2.
Sub NegritoEItalico()
With Range("A2").Font
.Bold = True
.Italic = True
End With
End Sub
19. Alterar a cor da borda de uma célula
Define a cor da borda da célula A1 para azul.
Sub AlterarCorBorda()
With Range("A1").Borders(xlEdgeBottom)
.Color = RGB(0, 0, 255)
End With
End Sub
20. Alterar o formato da célula para data
Este código formata a célula A1 como data no formato “dd/mm/aaaa”.
Sub FormatarComoData()
Range("A1").NumberFormat = "dd/mm/yyyy"
End Sub
21. Adicionar uma borda ao redor de um intervalo de células
Adiciona bordas ao redor do intervalo A1:C3.
Sub AdicionarBordasIntervalo()
Range("A1:C3").Borders.LineStyle = xlContinuous
End Sub
22. Aplicar um estilo de número personalizado
Este código aplica um formato de número personalizado na célula A1.
Sub FormatarNumeroPersonalizado()
Range("A1").NumberFormat = "#,##0.00"
End Sub
23. Alterar o alinhamento vertical do texto
Este código alinha o texto da célula A1 no centro verticalmente.
Sub AlinharVertical()
Range("A1").VerticalAlignment = xlCenter
End Sub
24. Ajustar a altura da linha automaticamente
Este código ajusta automaticamente a altura da linha 1 para caber o conteúdo.
Sub AjustarAlturaLinha()
Rows("1:1").AutoFit
End Sub
Códigos para Impressão
25. Imprimir a planilha ativa
Este código imprime a planilha ativa diretamente.
Sub ImprimirPlanilhaAtiva()
ActiveSheet.PrintOut
End Sub
26. Imprimir um intervalo específico de células
Imprime o intervalo de células A1:B10 da planilha ativa.
Sub ImprimirIntervalo()
Range("A1:B10").PrintOut
End Sub
27. Imprimir a planilha com uma área de impressão definida
Este código define uma área de impressão e imprime a planilha.
Sub ImprimirComAreaDefinida()
ActiveSheet.PageSetup.PrintArea = "$A$1:$C$20"
ActiveSheet.PrintOut
End Sub
28. Imprimir a planilha em PDF
Imprime a planilha ativa como um arquivo PDF.
Sub ImprimirComoPDF()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\Usuario\Desktop\Planilha.pdf"
End Sub
29. Imprimir várias cópias de uma planilha
Imprime 3 cópias da planilha ativa.
Sub ImprimirMultiplasCopias()
ActiveSheet.PrintOut Copies:=3
End Sub
30. Imprimir a planilha em uma página
Ajusta a planilha para imprimir em uma única página.
Sub ImprimirEmUmaPagina()
With ActiveSheet.PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
ActiveSheet.PrintOut
End Sub
31. Imprimir somente a primeira página
Este código imprime apenas a primeira página da planilha.
Sub ImprimirPrimeiraPagina()
ActiveSheet.PrintOut From:=1, To:=1
End Sub
32. Imprimir a planilha na orientação paisagem
Imprime a planilha ativa na orientação paisagem.
Sub ImprimirPaisagem()
ActiveSheet.PageSetup.Orientation = xlLandscape
ActiveSheet.PrintOut
End Sub
33. Imprimir a planilha na orientação retrato
Imprime a planilha ativa na orientação retrato.
Sub ImprimirRetrato()
ActiveSheet.PageSetup.Orientation = xlPortrait
ActiveSheet.PrintOut
End Sub
34. Ajustar a margem de impressão
Define margens personalizadas para impressão.
Sub AjustarMargens()
With ActiveSheet.PageSetup
.TopMargin = Application.InchesToPoints(1)
.BottomMargin = Application.InchesToPoints(1)
.LeftMargin = Application.InchesToPoints(0.75)
.RightMargin = Application.InchesToPoints(0.75)
End With
ActiveSheet.PrintOut
End Sub
35. Configurar a impressão para imprimir todas as páginas
Configura a impressão para abranger todas as páginas da planilha.
Sub ImprimirTodasAsPaginas()
ActiveSheet.PrintOut From:=1, To:=ActiveSheet.PageSetup.Pages.Count
End Sub
36. Imprimir a planilha com título repetido em cada página
Configura a impressão para repetir os títulos das colunas em cada página impressa.
Sub ImprimirComTituloRepetido()
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$1"
End With
ActiveSheet.PrintOut
End Sub
Códigos para Planilhas
37. Adicionar uma nova planilha
Este código adiciona uma nova planilha ao final do livro de trabalho.
Sub AdicionarNovaPlanilha()
Sheets.Add After:=Sheets(Sheets.Count)
End Sub
38. Renomear uma planilha
Renomeia a planilha ativa para “Nova Planilha”.
Sub RenomearPlanilha()
ActiveSheet.Name = "Nova Planilha"
End Sub
39. Mover uma planilha para o início do livro de trabalho
Move a planilha ativa para a primeira posição do livro de trabalho.
Sub MoverPlanilhaParaInicio()
ActiveSheet.Move Before:=Sheets(1)
End Sub
40. Mover uma planilha para o final do livro de trabalho
Move a planilha ativa para a última posição do livro de trabalho.
Sub MoverPlanilhaParaFinal()
ActiveSheet.Move After:=Sheets(Sheets.Count)
End Sub
41. Excluir uma planilha
Exclui a planilha ativa sem pedir confirmação.
Sub ExcluirPlanilha()
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
42. Copiar uma planilha para outro livro de trabalho
Copia a planilha ativa para um novo livro de trabalho.
Sub CopiarPlanilhaParaOutroLivro()
ActiveSheet.Copy
End Sub
43. Proteger uma planilha com senha
Protege a planilha ativa com a senha “senha123”.
Sub ProtegerPlanilha()
ActiveSheet.Protect Password:="senha123"
End Sub
44. Desproteger uma planilha com senha
Remove a proteção da planilha ativa usando a senha “senha123”.
Sub DesprotegerPlanilha()
ActiveSheet.Unprotect Password:="senha123"
End Sub
45. Mostrar ou ocultar uma planilha
Mostra a planilha chamada “Planilha Oculta”.
Sub MostrarPlanilha()
Sheets("Planilha Oculta").Visible = True
End Sub
46. Ocultar uma planilha
Oculta a planilha chamada “Planilha Oculta”.
Sub OcultarPlanilha()
Sheets("Planilha Oculta").Visible = False
End Sub
47. Referenciar uma planilha específica por nome
Este código seleciona a planilha chamada “Planilha de Dados” diretamente.
Sub SelecionarPlanilhaPorNome()
Sheets("Planilha de Dados").Select
End Sub
48. Verificar se uma planilha existe
Esse código verifica se a planilha “Planilha1” existe no livro de trabalho.
Sub VerificarPlanilhaExiste()
On Error Resume Next
If Not Sheets("Planilha1") Is Nothing Then
MsgBox "Planilha existe!"
Else
MsgBox "Planilha não encontrada!"
End If
On Error GoTo 0
End Sub
Códigos para Pastas de Trabalho
49. Abrir uma pasta de trabalho existente
Este código abre uma pasta de trabalho existente a partir de um caminho específico.
Sub AbrirPastaDeTrabalho()
Workbooks.Open "C:\Caminho\Para\Arquivo.xlsx"
End Sub
50. Salvar uma pasta de trabalho com um novo nome
Este código salva a pasta de trabalho ativa com um novo nome.
Sub SalvarComoNovoNome()
ActiveWorkbook.SaveAs "C:\Caminho\NovoArquivo.xlsx"
End Sub
51. Salvar uma pasta de trabalho
Este código salva a pasta de trabalho ativa.
Sub SalvarPastaDeTrabalho()
ActiveWorkbook.Save
End Sub
52. Fechar a pasta de trabalho sem salvar
Este código fecha a pasta de trabalho ativa sem salvar as alterações.
Sub FecharSemSalvar()
ActiveWorkbook.Close SaveChanges:=False
End Sub
53. Fechar a pasta de trabalho e salvar
Este código fecha a pasta de trabalho ativa e salva as alterações feitas.
Sub FecharESalvar()
ActiveWorkbook.Close SaveChanges:=True
End Sub
54. Fechar todas as pastas de trabalho abertas
Este código fecha todas as pastas de trabalho abertas no Excel.
Sub FecharTodasAsPastas()
For Each wb In Application.Workbooks
wb.Close SaveChanges:=False
Next wb
End Sub
55. Verificar se uma pasta de trabalho está aberta
Esse código verifica se uma pasta de trabalho chamada “Arquivo.xlsx” está aberta.
Sub VerificarPastaDeTrabalhoAberta()
On Error Resume Next
Set wb = Workbooks("Arquivo.xlsx")
If wb Is Nothing Then
MsgBox "A pasta de trabalho não está aberta."
Else
MsgBox "A pasta de trabalho está aberta."
End If
On Error GoTo 0
End Sub
56. Ativar uma pasta de trabalho aberta
Este código ativa uma pasta de trabalho específica chamada “Arquivo.xlsx”.
Sub AtivarPastaDeTrabalho()
Workbooks("Arquivo.xlsx").Activate
End Sub
57. Salvar e fechar a pasta de trabalho
Este código salva e fecha a pasta de trabalho ativa.
Sub SalvarEFechar()
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
58. Criar uma nova pasta de trabalho
Este código cria uma nova pasta de trabalho em branco.
Sub CriarNovaPastaDeTrabalho()
Workbooks.Add
End Sub
59. Definir uma pasta de trabalho como somente leitura
Este código define a pasta de trabalho ativa como somente leitura ao abrir.
Sub DefinirSomenteLeitura()
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
End Sub
60. Fechar a pasta de trabalho sem salvar se uma condição for atendida
Este código fecha a pasta de trabalho sem salvar se a célula A1 contiver o valor “Fechar”.
Sub FecharSeCondicaoAtendida()
If Range("A1").Value = "Fechar" Then
ActiveWorkbook.Close SaveChanges:=False
End If
End Sub
Códigos para Tabelas Dinâmicas
61. Criar uma Tabela Dinâmica simples
Este código cria uma Tabela Dinâmica baseada nos dados de uma planilha ativa.
Sub CriarTabelaDinamica()
Dim ws As Worksheet
Dim ptCache As PivotCache
Dim pt As PivotTable
Set ws = ActiveSheet
Set ptCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, ws.Range("A1:D20"))
Set pt = ptCache.CreatePivotTable(ws.Range("F1"), "TabelaDinamica1")
End Sub
62. Adicionar um campo de linhas à Tabela Dinâmica
Adiciona um campo “Categoria” como linha na Tabela Dinâmica.
Sub AdicionarCampoLinha()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
pt.PivotFields("Categoria").Orientation = xlRowField
End Sub
63. Adicionar um campo de valores à Tabela Dinâmica
Adiciona o campo “Vendas” como valores na Tabela Dinâmica.
Sub AdicionarCampoValores()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
pt.AddDataField pt.PivotFields("Vendas"), "Total de Vendas", xlSum
End Sub
64. Alterar o estilo da Tabela Dinâmica
Aplica o estilo “PivotStyleMedium9” à Tabela Dinâmica.
Sub AlterarEstiloTabelaDinamica()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
pt.TableStyle2 = "PivotStyleMedium9"
End Sub
65. Atualizar a Tabela Dinâmica
Atualiza a Tabela Dinâmica para refletir mudanças nos dados.
Sub AtualizarTabelaDinamica()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
pt.RefreshTable
End Sub
66. Alterar a função de cálculo de um campo de valores
Muda o campo “Vendas” para calcular a média.
Sub AlterarFuncaoCalculo()
Dim pt As PivotTable
Dim pf As PivotField
Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
Set pf = pt.PivotFields("Total de Vendas")
pf.Function = xlAverage
End Sub
67. Adicionar um campo de colunas à Tabela Dinâmica
Adiciona o campo “Ano” como coluna na Tabela Dinâmica.
Sub AdicionarCampoColuna()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
pt.PivotFields("Ano").Orientation = xlColumnField
End Sub
68. Remover um campo de uma Tabela Dinâmica
Remove o campo “Categoria” da Tabela Dinâmica.
Sub RemoverCampo()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
pt.PivotFields("Categoria").Orientation = xlHidden
End Sub
69. Configurar a Tabela Dinâmica para exibir subtotais
Ativa subtotais para o campo “Categoria”.
Sub AtivarSubtotais()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
pt.PivotFields("Categoria").Subtotals(1) = True
End Sub
70. Configurar a Tabela Dinâmica para não exibir subtotais
Desativa subtotais para o campo “Categoria”.
Sub DesativarSubtotais()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
pt.PivotFields("Categoria").Subtotals(1) = False
End Sub
71. Alterar a ordem dos campos de linha
Muda a ordem dos campos de linha na Tabela Dinâmica.
Sub AlterarOrdemCampos()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
pt.PivotFields("Categoria").Position = 2
End Sub
72. Excluir uma Tabela Dinâmica
Este código exclui a Tabela Dinâmica chamada “TabelaDinamica1”.
Sub ExcluirTabelaDinamica()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TabelaDinamica1")
pt.TableRange2.Clear
End Sub
Códigos para Gráficos
73. Criar um gráfico de colunas simples
Este código cria um gráfico de colunas baseado nos dados da planilha ativa.
Sub CriarGraficoColunas()
Dim ws As Worksheet
Dim grafico As Chart
Set ws = ActiveSheet
Set grafico = Charts.Add
grafico.ChartType = xlColumnClustered
grafico.SetSourceData Source:=ws.Range("A1:B10")
End Sub
74. Criar um gráfico de pizza
Cria um gráfico de pizza utilizando os dados da planilha ativa.
Sub CriarGraficoPizza()
Dim ws As Worksheet
Dim grafico As Chart
Set ws = ActiveSheet
Set grafico = Charts.Add
grafico.ChartType = xlPie
grafico.SetSourceData Source:=ws.Range("A1:B5")
End Sub
75. Alterar o título do gráfico
Modifica o título de um gráfico ativo.
Sub AlterarTituloGrafico()
Dim grafico As Chart
Set grafico = ActiveChart
grafico.ChartTitle.Text = "Meu Gráfico Personalizado"
End Sub
76. Mudar o tipo de gráfico
Converte um gráfico existente para o tipo de barras empilhadas.
Sub AlterarTipoGrafico()
Dim grafico As Chart
Set grafico = ActiveChart
grafico.ChartType = xlBarStacked
End Sub
77. Adicionar rótulos de dados ao gráfico
Insere rótulos de dados no gráfico ativo.
Sub AdicionarRotulosDados()
Dim grafico As Chart
Set grafico = ActiveChart
grafico.ApplyDataLabels
End Sub
78. Excluir um gráfico
Remove um gráfico selecionado na planilha ativa.
Sub ExcluirGrafico()
ActiveChart.Delete
End Sub
79. Redimensionar o gráfico
Ajusta o tamanho do gráfico ativo.
Sub RedimensionarGrafico()
Dim grafico As ChartObject
Set grafico = ActiveSheet.ChartObjects(1)
grafico.Width = 400
grafico.Height = 300
End Sub
80. Mover o gráfico para uma nova planilha
Transfere o gráfico ativo para uma nova planilha.
Sub MoverGraficoNovaPlanilha()
Dim grafico As Chart
Set grafico = ActiveChart
grafico.Location Where:=xlLocationAsNewSheet
End Sub
81. Alterar o estilo do gráfico
Aplica um estilo predefinido ao gráfico ativo.
Sub AlterarEstiloGrafico()
Dim grafico As Chart
Set grafico = ActiveChart
grafico.ChartStyle = 4
End Sub
82. Adicionar uma linha de tendência ao gráfico
Insere uma linha de tendência linear no gráfico ativo.
Sub AdicionarLinhaTendencia()
Dim serie As Series
Set serie = ActiveChart.SeriesCollection(1)
serie.Trendlines.Add xlLinear
End Sub
83. Alterar a cor de uma série de dados
Modifica a cor da primeira série de dados no gráfico ativo.
Sub AlterarCorSerieDados()
Dim serie As Series
Set serie = ActiveChart.SeriesCollection(1)
serie.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
End Sub
84. Exportar o gráfico como imagem
Salva o gráfico ativo como um arquivo de imagem.
Sub ExportarGraficoImagem()
Dim grafico As Chart
Set grafico = ActiveChart
grafico.Export Filename:="C:\Caminho\Grafico.png", FilterName:="PNG"
End Sub
Códigos Avançados
85. Criar uma caixa de diálogo personalizada
Este código exibe uma caixa de entrada personalizada para o usuário inserir um valor e armazena o valor na célula A1.
Sub CaixaDialogoPersonalizada()
Dim resposta As String
resposta = InputBox("Insira o valor desejado:", "Caixa Personalizada")
Range("A1").Value = resposta
End Sub
86. Proteger todas as planilhas da pasta de trabalho
Protege todas as planilhas da pasta de trabalho com uma senha.
Sub ProtegerTodasPlanilhas()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
ws.Protect Password:="senha123"
Next ws
End Sub
87. Desproteger todas as planilhas da pasta de trabalho
Remove a proteção de todas as planilhas protegidas com a senha “senha123”.
Sub DesprotegerTodasPlanilhas()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
ws.Unprotect Password:="senha123"
Next ws
End Sub
88. Enviar e-mail com anexos diretamente do Excel
Este código envia um e-mail com o arquivo ativo como anexo.
Sub EnviarEmail()
Dim outlookApp As Object
Dim emailItem As Object
Set outlookApp = CreateObject("Outlook.Application")
Set emailItem = outlookApp.CreateItem(0)
emailItem.To = "[email protected]"
emailItem.Subject = "Assunto do E-mail"
emailItem.Body = "Corpo do E-mail"
emailItem.Attachments.Add ThisWorkbook.FullName
emailItem.Send
End Sub
89. Gerar números aleatórios em um intervalo de células
Este código preenche um intervalo com números aleatórios entre 1 e 100.
Sub GerarNumerosAleatorios()
Dim rng As Range
Set rng = Range("A1:A10")
rng.Formula = "=RANDBETWEEN(1,100)"
rng.Value = rng.Value
End Sub
90. Mesclar células com base em valores iguais
Mescla células na coluna A se os valores forem iguais.
Sub MesclarCelulasIguais()
Dim i As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1).Value = Cells(i - 1, 1).Value Then
Range(Cells(i - 1, 1), Cells(i, 1)).Merge
End If
Next i
End Sub
91. Criar um log de alterações na planilha
Registra as alterações feitas em uma planilha em outra planilha chamada “Log”.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wsLog As Worksheet
Set wsLog = ThisWorkbook.Sheets("Log")
wsLog.Cells(wsLog.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = "Alterado: " & Target.Address & " para " & Target.Value & " em " & Now
End Sub
92. Ocultar todas as planilhas exceto a ativa
Oculta todas as planilhas, deixando apenas a ativa visível.
Sub OcultarPlanilhasExcetoAtiva()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
If ws.Name <> ActiveSheet.Name Then
ws.Visible = xlSheetHidden
End If
Next ws
End Sub
93. Converter fórmulas em valores
Transforma todas as fórmulas em valores no intervalo selecionado.
Sub ConverterFormulasValores()
Dim rng As Range
Set rng = Selection
rng.Value = rng.Value
End Sub
94. Consolidar dados de várias planilhas
Consolida os dados de todas as planilhas em uma única planilha chamada “Consolidado”.
Sub ConsolidarDados()
Dim ws As Worksheet
Dim wsDestino As Worksheet
Dim ultimaLinha As Long
Set wsDestino = ThisWorkbook.Sheets("Consolidado")
For Each ws In ThisWorkbook.Sheets
If ws.Name <> "Consolidado" Then
ultimaLinha = wsDestino.Cells(Rows.Count, 1).End(xlUp).Row + 1
ws.Rows("1:10").Copy wsDestino.Cells(ultimaLinha, 1)
End If
Next ws
End Sub
95. Criar uma lista de arquivos em uma pasta
Gera uma lista de nomes de arquivos de uma pasta especificada na coluna A.
Sub ListarArquivos()
Dim pasta As String
Dim arquivo As String
Dim i As Long
pasta = "C:\Caminho\Da\Pasta\"
arquivo = Dir(pasta)
i = 1
Do While arquivo <> ""
Cells(i, 1).Value = arquivo
arquivo = Dir
i = i + 1
Loop
End Sub
96. Copiar dados para uma nova pasta de trabalho
Este código copia os dados da planilha ativa para uma nova pasta de trabalho.
Sub CopiarParaNovaPasta()
Dim novaWB As Workbook
Set novaWB = Workbooks.Add
ThisWorkbook.Sheets(1).UsedRange.Copy novaWB.Sheets(1).Cells(1, 1)
End Sub
Códigos para Fórmulas
97. Inserir fórmula básica em uma célula
Este código insere uma fórmula de soma na célula A1.
Sub InserirFormulaSoma()
Range("A1").Formula = "=SUM(B1:B10)"
End Sub
98. Inserir fórmula com referência a outra planilha
Adiciona uma fórmula que referencia uma célula em outra planilha.
Sub InserirFormulaReferencia()
Range("A1").Formula = "='Planilha2'!B1"
End Sub
99. Converter fórmulas em valores em um intervalo
Substitui todas as fórmulas em um intervalo pelos valores calculados.
Sub ConverterFormulaParaValores()
Range("A1:A10").Value = Range("A1:A10").Value
End Sub
100. Adicionar fórmula de concatenação em uma célula
Este código concatena os valores das células A1 e B1 na célula C1.
Sub InserirFormulaConcatenar()
Range("C1").Formula = "=A1 & "" "" & B1"
End Sub
101. Inserir fórmula SE em uma célula
Adiciona uma fórmula SE (IF) na célula A1 para verificar se o valor em B1 é maior que 10.
Sub InserirFormulaSE()
Range("A1").Formula = "=IF(B1>10; ""Maior""; ""Menor ou Igual"")"
End Sub
102. Inserir fórmula de média em um intervalo
Calcula a média de valores no intervalo B1:B10 e exibe o resultado na célula A1.
Sub InserirFormulaMedia()
Range("A1").Formula = "=AVERAGE(B1:B10)"
End Sub
103. Inserir fórmula PROCV em uma célula
Insere uma fórmula PROCV para buscar valores na tabela de A1:B10 com base no valor em C1.
Sub InserirFormulaPROCV()
Range("D1").Formula = "=VLOOKUP(C1; A1:B10; 2; FALSE)"
End Sub
104. Inserir fórmula SOMARPRODUTO
Adiciona uma fórmula SOMARPRODUTO que multiplica e soma valores em dois intervalos.
Sub InserirFormulaSOMARPRODUTO()
Range("A1").Formula = "=SUMPRODUCT(B1:B10; C1:C10)"
End Sub
105. Inserir fórmula de contagem de valores únicos
Conta valores únicos no intervalo A1:A10 usando uma fórmula matricial.
Sub InserirFormulaValoresUnicos()
Range("A1").FormulaArray = "=SUM(1/COUNTIF(B1:B10; B1:B10))"
End Sub
106. Inserir fórmula de índice e corresp
Adiciona uma fórmula ÍNDICE e CORRESP para buscar um valor em uma tabela.
Sub InserirFormulaIndiceCorresp()
Range("A1").Formula = "=INDEX(B1:B10; MATCH(C1; A1:A10; 0))"
End Sub
107. Inserir fórmula de arredondamento
Insere uma fórmula para arredondar o valor de B1 para 2 casas decimais.
Sub InserirFormulaArredondar()
Range("A1").Formula = "=ROUND(B1; 2)"
End Sub
108. Inserir fórmula de soma condicional
Adiciona uma fórmula SOMASE para somar valores no intervalo B1:B10 baseados em uma condição.
Sub InserirFormulaSOMASE()
Range("A1").Formula = "=SUMIF(A1:A10; ""Texto""; B1:B10)"
End Sub
109. Inserir fórmula de contagem condicional
Conta células no intervalo A1:A10 que atendem a uma condição.
Sub InserirFormulaContarSe()
Range("A1").Formula = "=COUNTIF(A1:A10; ""Texto"")"
End Sub
110. Aplicar fórmula de hoje
Insere a data atual na célula A1 usando a fórmula HOJE.
Sub InserirFormulaHoje()
Range("A1").Formula = "=TODAY()"
End Sub
111. Inserir fórmula de agora
Adiciona a data e hora atual à célula A1.
Sub InserirFormulaAgora()
Range("A1").Formula = "=NOW()"
End Sub
112. Inserir fórmula de texto para maiúsculas
Converte texto em uma célula para maiúsculas usando a função MAIÚSCULA.
Sub InserirFormulaMaiuscula()
Range("A1").Formula = "=UPPER(B1)"
End Sub
113. Inserir fórmula de texto para minúsculas
Converte texto em uma célula para minúsculas usando a função MINÚSCULA.
Sub InserirFormulaMinuscula()
Range("A1").Formula = "=LOWER(B1)"
End Sub
114. Inserir fórmula para inicial maiúscula
Converte texto para que cada palavra comece com letra maiúscula usando a função PRI.MAIÚSCULA.
Sub InserirFormulaInicialMaiuscula()
Range("A1").Formula = "=PROPER(B1)"
End Sub
115. Inserir fórmula de número de caracteres
Conta o número de caracteres em uma célula usando a função NÚM.CARACT.
Sub InserirFormulaNumCaracteres()
Range("A1").Formula = "=LEN(B1)"
End Sub
116. Inserir fórmula para substituir texto
Substitui parte de um texto na célula B1 por outro texto usando a função SUBSTITUIR.
Sub InserirFormulaSubstituir()
Range("A1").Formula = "=SUBSTITUTE(B1; ""TextoAntigo""; ""TextoNovo"")"
End Sub
0 Comentários