Questionário Excel VBA Planilha – Treinamento Curso Excel VBA SomaExcel 1
📊 Questionário de Excel VBA com Macros Prontas – Aprenda Fazendo
🌿 “E ensinava-lhes com autoridade…” – Marcos 1:22
Este questionário foi cuidadosamente elaborado para estudantes, autodidatas e profissionais que desejam dominar Excel VBA com clareza e propósito. Cada questão apresenta um exemplo real de macro, uma situação prática, e uma explicação objetiva que fortalece o entendimento passo a passo.
Além de testar o conhecimento, este material instiga o pensamento lógico, a capacidade analítica e o senso de automação — pilares fundamentais para quem deseja criar planilhas inteligentes, reduzir tarefas repetitivas e aumentar a produtividade em ambientes corporativos, acadêmicos e pessoais.
Aqui, aprender não é apenas decorar comandos, mas entender a lógica por trás da automação com planilhas inteligentes. Com cada macro, o aluno desenvolve segurança na linguagem VBA e amplia sua visão estratégica no uso do Excel.
📌 Ao final, o estudante terá: • domínio das estruturas básicas e intermediárias do VBA • compreensão sobre loops, condições, interação com planilhas e mensagens ao usuário • exemplos aplicáveis ao cotidiano profissional — prontos para adaptar
✨ Estude no seu ritmo. Copie, teste e aprenda com propósito. O conhecimento transforma — e este questionário pode ser o ponto de virada na sua jornada com o Excel.
🧪 Questionário: Excel VBA – Lógica e Prática Profissional
1. Qual é o atalho para abrir o Editor VBA no Excel?
A) Alt + F11
B) Ctrl + F11
C) Shift + F11 D
) Alt + F12
Resposta: A) Alt + F11
Explicação: Esse atalho abre diretamente o ambiente de desenvolvimento do VBA.
2. Qual objeto no VBA é usado para referenciar uma célula específica em uma planilha?
A) Range
B) Cell
C) Worksheet
D) Workbook
Resposta: A) Range
Explicação: Range("A1") é a forma padrão de referenciar a célula A1.
3. Qual é a função do comando MsgBox no VBA?
A) Exibir mensagem
B) Criar caixa de texto
C) Salvar arquivo
D) Abrir VBA
Resposta: A) Exibir mensagem
Explicação: MsgBox exibe uma caixa de diálogo com texto ao usuário.
4. Qual é o tipo de variável usado para armazenar números inteiros no VBA?
A) Integer B) String C) Double D) Boolean
Resposta: A) Integer
Explicação: Integer armazena números como 1, 2 ou -50. (até 32.676)
5. Qual método é usado para ativar uma planilha específica no VBA?
A) Activate B) Select C) Open D) Load
Resposta: A) Activate
Explicação: PlanilhaX.Activate torna a planilha ativa.
6. Qual é o propósito do comando Dim no VBA?
A) Declarar variável
B) Definir tamanho da célula
C) Criar planilha
D) Salvar arquivo
Resposta: A) Declarar variável
Explicação: Dim define o nome e o tipo de uma variável.
7. Qual é o operador usado para concatenar strings no VBA?
A) &
B) +
C) *
D) #
Resposta: A) usa o Caracter &
Explicação: "Olá!," & " Quer Aprender Excel VBA"
resulta em “Ola, Quer Aprender Excel VBA”.
8. Qual é o comando usado para criar um loop que repete enquanto uma condição é verdadeira?
A) Do While
B) For Each
C) If Then
D) Select Case
Resposta: A) Do While
Explicação: Executa o bloco até que a condição se torne falsa.
9. Qual é o evento que é acionado quando uma planilha é ativada?
A) Worksheet_Activate
B) Workbook_Open
C) Worksheet_Change
D) Workbook_BeforeClose
Resposta: A) Worksheet_Activate
Explicação: Esse evento dispara quando a aba da planilha recebe foco.
10. Qual é o comando usado para exibir o valor de uma variável durante a execução do código?
A) Debug.Print
B) MsgBox
C) Console.Write
D) Show.Value
Resposta: A) Debug.Print
Explicação: Exibe informações na janela de depuração.
11. Qual é o método usado para copiar um intervalo de células no VBA?
A) Copy
B) Paste
C) Cut
D) Move
Resposta: A) Copy
Explicação: Range("A1:A5").Copy faz a cópia do intervalo.
Exemplo de Macro:
'copia e colar
Sub Copiar_Dados
Range("A1:A5").Copy [d10]
End Sub
12. Qual é o comando usado para encerrar um loop prematuramente no VBA?
A) Exit For
B) Break
C) Stop Loop
D) End
Resposta: A) Exit For
Explicação: Interrompe o laço antes da condição final.
13. Qual é o tipo de variável para valores booleanos no VBA?
A) Boolean
B) Integer
C) String
D) Variant
Resposta: A) Boolean
Explicação: Armazena True ou False.
14. Qual é o comando usado para criar uma nova pasta de trabalho no VBA?
A) Workbooks.Add
B) Workbook.New
C) Worksheet.Create
D) File.New
Resposta: A) Workbooks.Add
Explicação: Cria um novo arquivo em branco.
15. Qual é o método usado para salvar uma pasta de trabalho?
A) Save
B) SaveAs
C) Export
D) Write
Resposta: A) Save
Explicação: Salva o arquivo atual. Para salvar com outro nome, usa-se SaveAs.
🧪 Questionário: Excel VBA – Avançando no Conhecimento
16. Qual é o comando usado para limpar o conteúdo de uma célula no VBA?
A) ClearContents
B) ClearAll
C) DeleteContents
D) RemoveData
Resposta: A) ClearContents
Explicação: Range("A1").ClearContents remove apenas o conteúdo da célula, mantendo a formatação.
17. Qual é o método usado para proteger uma planilha no VBA?
A) Protect
B) Lock
C) Secure
D) Encrypt
Resposta: A) Protect
Explicação: Worksheet.Protect é usado para proteger uma planilha contra alterações.
18. Qual é o comando usado para desproteger uma planilha no VBA?
A) Unprotect
B) Unlock
C) DisableProtect
D) RemoveLock
Resposta: A) Unprotect
Explicação: Worksheet.Unprotect remove a proteção de uma planilha.
19. Qual é o evento acionado ao alterar o valor de uma célula em uma planilha?
A) Worksheet_Change
B) Worksheet_Activate
C) Workbook_Open
D) Worksheet_BeforeSave
Resposta: A) Worksheet_Change
Explicação: O evento Worksheet_Change é disparado sempre que o valor de uma célula é alterado.
20. Qual é o comando usado para pausar a execução do código por um tempo específico?
A) Application.Wait
B) Pause.Code
C) Timer.Delay
D) Sleep
Resposta: A) Application.Wait
Explicação: Application.Wait pausa o código até um horário específico.
21. Qual é o método usado para fechar uma pasta de trabalho no VBA?
A) Close
B) Quit
C) Exit
D) End
Resposta: A) Close
Explicação: Workbook.Close fecha a pasta de trabalho atual.
22. Qual é o comando usado para verificar se uma célula está vazia no VBA?
A) IsEmpty
B) IsNull
C) IsBlank
D) IsNothing
Resposta: A) IsEmpty
Explicação: IsEmpty(Range("A1").Value) retorna True se a célula estiver vazia.
23. Qual é o comando usado para criar uma caixa de entrada de texto no VBA?
A) InputBox
B) MsgBox
C) TextBox
D) DialogBox
Resposta: Alternativa A) – InputBox
Explicação: InputBox exibe uma caixa de diálogo para o usuário inserir texto.
24. Qual é o método usado para salvar todas as pastas de trabalho abertas no VBA?
A) SaveAll
B) SaveWorkbooks
C) SaveChanges
D) Save
Resposta: A) SaveAll
Explicação: Application.SaveAll salva todas as pastas de trabalho abertas.
25. Qual é o comando usado para desativar atualizações de tela no VBA?
A) Application.ScreenUpdating = False
B) Application.DisplayUpdates = False
C) Application.DisableScreen
D) Application.HideScreen
Resposta: A) Application.ScreenUpdating = False
Explicação: Esse comando melhora o desempenho ao desativar a atualização da tela durante a execução do código.
26. Qual é o comando usado para adicionar um novo módulo no VBA?
A) InsertModule
B) AddModule
C) CreateModule
D) NewModule
Resposta: A) InsertModule
Explicação: ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule) adiciona um novo módulo.
27. Qual é o método usado para renomear uma planilha no VBA?
A) Name
B) Rename
C) ChangeName
D) SetName
Resposta: A) Name
Explicação: Worksheet.Name = "NovoNome" altera o nome da planilha.
28. Qual é o comando usado para exibir uma mensagem de erro personalizada no VBA?
A) On Error GoTo
B) ErrorMessage
C) MsgBoxError
D) RaiseError
Resposta: A) On Error GoTo
Explicação: On Error GoTo redireciona o código para um bloco de tratamento de erros.
29. Qual é o comando usado para definir o valor de uma célula no VBA?
A) Value
B) SetValue
C) AssignValue
D) CellValue
Resposta: A) Value Explicação: Range("A1").Value = 10 | define o valor da célula A1 como 10.
30. Qual é o método usado para ocultar uma planilha no VBA?
A) Visible = False
B) Hide
C) Sheet.Hide
D) Worksheet.Hide
Resposta: A) Visible = False
Explicação: Worksheet.Visible = xlSheetHidden oculta a planilha.
🧪 Questões com Macros Prontas – Parte 1
31. Qual é o resultado da macro abaixo?
Sub ApagarConteudo()
Range("A1:A10").ClearContents
End Sub
A) Apaga todas as células da planilha
B) Apaga o conteúdo das células A1 até A10
C) Deleta a planilha
D) Oculta o intervalo A1:A10
Resposta: B Explicação: O método ClearContents limpa apenas os valores, não a formatação.
32. O que essa macro faz?
Sub InserirTexto()
Range("B2").Value = "Bem-vindo ao curso SomaExcel VBA!"
End Sub
A) Escreve o texto na célula B2
B) Cria uma nova planilha com esse texto
C) Exibe uma mensagem ao usuário
D) Apaga o conteúdo da célula B2
Resposta: A Explicação: A macro insere um texto diretamente na célula B2.
33. Qual será o resultado da execução da macro abaixo?
Sub OcultarColuna()
Columns("C").Hidden = True
End Sub
A) Apaga a coluna C
B) Congela a coluna C
C) Oculta a coluna C
D) Muda a cor da coluna C
Resposta: C
Explicação: O comando .Hidden = True torna a coluna invisível.
34. O que esta macro executa?
Sub MudarCor()
Range("A1").Interior.Color = vbYellow
End Sub
A) Aplica bordas amarelas
B) Muda a cor da fonte para amarelo
C) Preenche a célula A1 com fundo amarelo
D) Pinta a planilha inteira de amarelo
Resposta: C
Explicação: .Interior.Color controla o fundo da célula.
35. Essa macro faz o quê?
Sub ExibirMensagem()
MsgBox "Curso iniciado com sucesso!"
End Sub
A) Insere o texto em uma célula
B) Exibe uma caixa de mensagem com um aviso
C) Fecha a planilha
D) Exibe um gráfico
Resposta: B
Explicação: MsgBox mostra uma mensagem interativa para o usuário.
36. Qual será o conteúdo da célula A1 após executar a macro?
Sub SomaSimples()
Range("A1").Value = 10 + 5
End Sub
A) 105
B) “10 + 5”
C) 15
D) Erro
Resposta: Alternativa | C
Explicação: A operação aritmética retorna 15.
37. O que essa macro faz com a planilha ativa?
Sub InserirNovaLinha()
Rows(3).Insert
End Sub
A) Insere uma nova linha abaixo da linha 3
B) Insere uma nova linha acima da linha 3
C) Substitui a linha 3
D) Duplica a linha 3
Resposta: Alternativa | B
Explicação: O método Insert desloca a linha 3 para baixo e insere uma nova acima.
38. Para que serve essa macro?
Sub CongelarTela()
Application.ScreenUpdating = False
End Sub
A) Travar a planilha contra edição
B) Parar a execução do código
C) Desativar a atualização visual durante o código
D) Redefinir a janela para o zoom 100%
Resposta: C
Explicação: Isso evita piscadas na tela e acelera a execução.
39. O que acontece ao executar a macro abaixo?
Sub CriarPlanilha()
Sheets.Add
End Sub
A) Cria uma nova pasta de trabalho
B) Cria uma nova célula
C) Cria uma nova planilha dentro do arquivo
D) Duplicará a planilha ativa
Resposta: C Explicação: Sheets.Add adiciona uma nova guia ao arquivo atual.
40. Qual é o efeito desta macro?
Sub FecharArquivo()
ThisWorkbook.Close SaveChanges:=True
End Sub
A) Fecha a pasta de trabalho sem salvar
B) Exclui o arquivo
C) Fecha e salva o arquivo atual
D) Abre outro arquivo
Resposta: C
Explicação: SaveChanges:=True salva alterações antes de fechar.
41. O que essa macro faz?
Sub ApagarLinhas()
Rows("5:10").Delete
End Sub
A) Oculta as linhas 5 a 10
B) Exclui as linhas 5 a 10
C) Apaga o conteúdo das células nas linhas 5 a 10
D) Move as linhas 5 a 10 para o topo
Resposta: B
Explicação: Delete remove fisicamente as linhas indicadas.
42. Qual é o resultado da macro abaixo?
Sub CopiarValor()
Range("A1").Copy Range("B1")
End Sub
A) Move o valor de A1 para B1
B) Copia o valor de A1 para B1
C) Transfere todos os valores da coluna A para B
D) Troca os valores de A1 e B1
Resposta: B
Explicação: .Copy destino copia o conteúdo da célula A1 para B1.
43. O que acontece ao rodar essa macro?
Sub ExibirData()
MsgBox Date
End Sub
A) Insere a data na célula ativa
B) Abre o calendário
C) Exibe a data atual em uma caixa de mensagem
D) Solicita que o usuário insira uma data
Resposta: C
Explicação: Date retorna a data atual do sistema.
44. Qual é o efeito desta macro?
Sub SelecionarIntervalo()
Range("B2:D5").Select
End Sub
A) Copia o intervalo B2 até D5
B) Seleciona o intervalo B2 até D5
C) Apaga o intervalo indicado
D) Move os valores do intervalo
Resposta: B
Explicação: O método .Select apenas destaca as células.
45. O que essa macro realiza?
Sub ContarLinhas()
MsgBox Range("A1").CurrentRegion.Rows.Count
End Sub
A) Conta todas as linhas da planilha
B) Conta as linhas de A1 até o fim da planilha
C) Conta as linhas da região contínua começando em A1
D) Conta apenas células vazias
Resposta: C
Explicação: CurrentRegion pega o bloco de dados conectado a A1.
46. Qual é a finalidade desta macro?
Sub IrParaFim()
Range("A1").End(xlDown).Select
End Sub
A) Seleciona a última célula usada na coluna A
B) Apaga a coluna A
C) Move os dados para o final da planilha
D) Insere uma nova célula
Resposta: A
Explicação: End(xlDown) vai até a última célula com valor contínuo abaixo de A1.
47. O que essa macro faz com a coluna C?
Sub CongelarColuna()
ActiveWindow.FreezePanes = True
End Sub
A) Congela a coluna C automaticamente
B) Congela a célula ativa atual
C) Congela toda a planilha
D) Oculta a coluna C
Resposta: B
Explicação: Congela a visualização a partir da célula ativa.
48. Qual é o comportamento da macro abaixo?
Sub DesprotegerPlanilha()
ActiveSheet.Unprotect Password:="1234"
End Sub
A) Cria senha na planilha
B) Ativa a proteção contra escrita
C) Remove a proteção da planilha se a senha estiver correta
D) Deleta todos os dados
Resposta: C
Explicação: .Unprotect remove a trava(proteção) usando a senha fornecida.
49. O que essa macro exibe ao rodar?
Sub MostrarHora()
MsgBox Time
End Sub
A) A data e a hora
B) Apenas a hora atual do sistema
C) A hora da célula ativa
D) Abre o relógio do Windows
Resposta: B
Explicação: Time retorna somente a hora atual.
50. Qual o resultado desta macro?
Sub FormatarNegrito()
Range("A1").Font.Bold = True
End Sub
A) Alinha o texto à esquerda
B) Aplica itálico à célula
C) Ativa negrito na célula A1
D) Muda a cor da fonte
Resposta: C
Explicação: .Font.Bold = True deixa o texto em negrito.
51. Qual será a mensagem exibida?
Sub ConcatenarTexto()
Dim nome As String
nome = "Prof.Expedito Marcondes"
MsgBox "Olá, " & nome
End Sub
A) Olá,
B) Expedito
C) Olá, Prof.Expedito Marcondes
D) “Olá,” & nome
Resposta: C
Explicação: O operador & concatena os textos.
52. O que acontece ao executar essa macro?
Sub SalvarArquivo()
ActiveWorkbook.Save
End Sub
A) Fecha o Excel
B) Salva o arquivo atual
C) Abre o gerenciador de arquivos
D) Exibe uma mensagem
Resposta: B
Explicação: .Save grava as alterações do arquivo aberto.
53. Qual é o efeito dessa macro em um formulário?
Sub LimparCampos()
TextBox1.Value = ""
TextBox2.Value = ""
End Sub
A) Remove os campos
B) Fecha o formulário
C) Limpa os campos de texto
D) Muda o foco para TextBox2
Resposta: C
Explicação: Define os valores dos campos como vazios.
54. Qual é a saída dessa macro?
Sub MostrarContagem()
Dim i As Integer
For i = 1 To 3
MsgBox i
Next i
End Sub
A) Exibe 1
B) Exibe 1, 2, 3 em sequência
C) Mostra apenas o 3
D) Exibe um erro de loop
Resposta: B
Explicação: O loop For...Next mostra 3 caixas com os valores 1, 2 e 3.
55. O que essa macro faz?
Sub OcultarLinhasVazias()
If IsEmpty(Range("A5").Value) Then Rows(5).Hidden = True
End If
A) Oculta a planilha inteira
B) Oculta a linha 5 se ela estiver vazia
C) Exibe um aviso
D) Salta a linha 5 Resposta:
B Explicação: Condicional If verifica se A5 está vazia e esconde a linha.
56. O que esta macro faz?
Sub ApagarLinhas()
Rows("5:10").Delete
End Sub
A) Oculta as linhas 5 a 10
B) Exclui as linhas 5 a 10
C) Apaga o conteúdo das células
D) Move as linhas para o topo
Resposta: B
Explicação: O método Delete remove as linhas da planilha.
57. Qual será o resultado desta macro?
Sub CopiarValor()
Range("A1").Copy Range("B1")
End Sub
A) Move A1 para B1
B) Copia A1 para B1
C) Transfere todas as colunas
D) Troca os valores
Resposta: B
Explicação: O conteúdo de A1 é copiado para B1.
58. O que esta macro exibe?
Sub ExibirData()
MsgBox Date
End Sub
A) Data atual
B) Hora atual
C) Célula ativa
D) Nada
Resposta: A Explicação: A função Date retorna a data do sistema.
59. O que esta macro realiza?
Sub SelecionarIntervalo()
Range("B2:D5").Select
End Sub
A) Copia as células
B) Seleciona o intervalo
C) Apaga o conteúdo
D) Move os dados
Resposta: B
Explicação: Apenas seleciona o intervalo especificado.
60. Qual o propósito desta macro?
Sub ContarLinhas()
MsgBox Range("A1").CurrentRegion.Rows.Count
End Sub
A) Conta todas as linhas da planilha
B) Conta a região contínua a partir de A1
C) Verifica linhas vazias
D) Nada
Resposta: B
Explicação: CurrentRegion abrange o bloco de dados conectado a A1.
61. Qual o efeito desta macro?
Sub IrParaFim()
Range("A1").End(xlDown).Select
End Sub
A) Seleciona A1
B) Desce até o fim dos dados na coluna A
C) Apaga coluna A
D) Duplica A1
Resposta: B
Explicação: Vai até a última célula preenchida verticalmente.
62. O que acontece ao rodar essa macro?
Sub CongelarVisual()
ActiveWindow.FreezePanes = True
End Sub
A) Trava a edição
B) Congela a célula ativa
C) Fecha o arquivo
D) Nada Resposta: B
Explicação: Congela linhas/colunas a partir da célula ativa.
63. Qual a função da macro abaixo?
Sub Desproteger()
ActiveSheet.Unprotect Password:="1234"
End Sub
A) Protege planilha
B) Mostra senha
C) Remove proteção
D) Apaga conteúdo
Resposta: C
Explicação: Se a senha for correta, a planilha é destravada.
64. O que esta macro exibe?
Sub MostrarHora()
MsgBox Time
End Sub
A) Hora do Excel
B) Hora do sistema
C) Data
D) Nenhuma das anteriores
Resposta: B Explicação:
A função Time exibe a hora atual do computador.
65. Esta macro faz o quê?
Sub FormatarNegrito()
Range("A1").Font.Bold = True
End Sub
A) Centraliza texto
B) Muda a cor C)
Aplica negrito na célula A1
D) Copia a fonte
Resposta: C
Explicação: Define o estilo da fonte como negrito.
66. Qual será a mensagem exibida?
Sub Saudacao()
Dim nome As String
nome = "Prof.Expedito Marcondes"
MsgBox "Olá, " & nome
End Sub
A) Ola, Prof.Expedito Marcondes
B) Olá
C) “Olá,” & nome
D) Expedito
Resposta: A
Explicação: Usa concatenação para criar a saudação.
67. O que esta macro faz?
Sub SalvarAtivo()
ActiveWorkbook.Save
End Sub
A) Salva o arquivo atual
B) Fecha sem salvar
C) Abre novo arquivo
D) Mostra o caminho do arquivo
Resposta: A
Explicação: .Save grava as alterações no arquivo.
68. Qual o efeito desta macro em um formulário?
Sub LimparTexto()
TextBox1.Value = ""
TextBox2.Value = ""
End Sub
A) Fecha o formulário
B) Limpa os campos de texto
C) Remove os controles
D) Exibe alerta
Resposta: B
Explicação: Define os campos como vazios, limpando-os.
69. Esta macro exibe quais valores?
Sub MostrarNumeros()
Dim i As Integer
For i = 1 To 3
MsgBox i
Next i
End Sub
A) Apenas 3
B) 1, 2 e 3 em janelas diferentes
C) 1 somado com 3
D) Nenhum valor
Resposta: B
Explicação: O loop exibe uma caixa com cada valor de i.
70. Esta macro executa qual ação?
Sub OcultarSeVazio()
If IsEmpty(Range("A5").Value) Then Rows(5).Hidden = True
End If
A) Oculta planilha
B) Oculta linha 5 se A5 for vazio
C) Apaga Linhas 5 e A5
D) Limpa as Linha 5 e A5
Resposta B
Explicação: A função IsEmpty informa vazio
🎯 Questionário: Excel VBA – Planilhas, Loops, Condições e Lógica de Negócios
🌿 “O entendimento bem conduzido traz bom êxito.” – Provérbios 16:20
📄 1. Criar nova planilha com nome personalizado
Sub CriarRelatorio()
Worksheets.Add.Name = "Relatório"
End Sub
💬 Pergunta: Qual é o propósito desta macro?
✅ Resposta correta: Criar uma nova planilha chamada “Relatório”
🧠 Explicação: Worksheets.Add cria a planilha, e .Name define o nome.
🔢71. Somar todos os valores preenchidos na Coluna A
Sub SomarColunaA()
Dim cel As Range, total As Double
For Each cel In Range("A1:A10")
total = total + cel.Value
Next cel
MsgBox total
End Sub
💬 Pergunta: O que esta macro faz?
✅ Resposta correta: Soma os valores da coluna A e exibe o total
🧠 Explicação: Usa For Each para somar cada célula do intervalo.
📌72. Somar apenas valores maiores que 10 na Coluna B
Sub SomarMaiores()
Dim cel As Range, total As Double
For Each cel In Range("B1:B10")
If cel.Value > 10 Then total = total + cel.Value
Next cel
MsgBox total
End Sub
💬 Pergunta: Qual será o resultado?
✅ Resposta correta: Exibe a soma dos valores maiores que 10 na Coluna B
🧠 Explicação: Usa If para aplicar a condição dentro do loop.
🧱 73. Criar 5 novas planilhas automaticamente
Sub CriarPlanilhas()
Dim i As Integer
For i = 1 To 5
Worksheets.Add.Name = "Planilha" & i
Next i
End Sub
💬 Pergunta: O que esta macro realiza?
✅ Resposta correta: Cria 5 planilhas chamadas “Planilha1” até “Planilha5”
🧠 Explicação: Loop For com concatenação para nomear dinamicamente.
🙈 74. Ocultar todas as planilhas exceto a ativa
Sub OcultarOutras()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name <> ActiveSheet.Name Then ws.Visible = xlSheetHidden
Next ws
End Sub
💬 Pergunta: Qual o efeito? ✅ Resposta correta: Oculta todas as planilhas exceto a ativa 🧠 Explicação: Verifica se a planilha não é a ativa e aplica Visible.
📌 75. Mostrar o nome da planilha ativa
Sub NomeDaPlanilha()
MsgBox ActiveSheet.Name
End Sub
💬 Pergunta: O que esta macro faz? ✅ Resposta correta: Exibe o nome da planilha ativa 🧠 Explicação: Usa ActiveSheet.Name com MsgBox.
➕ 76. Somar valores da célula A1 de todas as planilhas
Sub SomarTodas()
Dim ws As Worksheet, total As Double
For Each ws In Worksheets
total = total + ws.Range("A1").Value
Next ws
MsgBox total
End Sub
💬 Pergunta: Qual será o resultado?
✅ Resposta correta: Exibe a soma dos valores na célula A1 de todas as planilhas
🧠 Explicação: Loop percorre todas as abas com .Range("A1").Value.
❌ 77. Excluir todas as planilhas exceto a ativa
Sub ExcluirOutras()
Dim ws As Worksheet
Application.DisplayAlerts = False
For Each ws In Worksheets
If ws.Name <> ActiveSheet.Name Then ws.Delete
Next ws
Application.DisplayAlerts = True
End Sub
💬 Pergunta: O que esta macro realiza?
✅ Resposta correta: Exclui todas as planilhas exceto a ativa
🧠 Explicação: Usa .Delete com DisplayAlerts = False para não pedir confirmação.
📚 78. Contar número total de planilhas no arquivo
Sub ContarPlanilhas()
MsgBox Worksheets.Count
End Sub
💬 Pergunta: Qual o propósito desta macro?
✅ Resposta correta: Exibe o número total de planilhas no arquivo
🧠 Explicação: A propriedade .Count retorna a quantidade.
🔄 79. Somar o valor da célula A1 em todas as planilhas
Sub SomarA1Planilhas()
Dim ws As Worksheet, total As Double
For Each ws In Worksheets
total = total + ws.Range("A1").Value
Next ws
MsgBox total
End Sub
💬 Pergunta: Qual será o resultado desta macro?
✅ Resposta correta: Exibe a soma dos valores da célula A1 em todas as planilhas
🧠 Explicação: Este padrão é fundamental para entender como interagir com múltiplas guias no VBA — o loop For Each percorre as planilhas, somando A1 de cada uma.
🔍 80. Filtrar e somar somente valores maiores que 10 na Coluna C
Sub SomarMaioresQue10()
Dim cel As Range, total As Double
For Each cel In Range("C1:C20")
If IsNumeric(cel.Value) And cel.Value > 10 Then
total = total + cel.Value
End If
Next cel
MsgBox "Total dos valores > 10: " & total
End Sub
💬 Pergunta: O que esta macro faz?
✅ Resposta correta: Soma apenas os valores numéricos maiores que 10 na Coluna C
🧠 Explicação: A instrução If com IsNumeric assegura que somente números acima de 10 sejam considerados. O loop percorre as células, somando conforme o critério.
📊 Questionário VBA – Macros Avançadas com Planilhas, Condições e Laços
“Ensina-me, e eu aprenderei o teu caminho.” – Salmos 86:11
🆕 81. Criar uma nova planilha com a data atual no nome
Sub CriarComData()
Worksheets.Add.Name = Format(Date, "dd-mm-yyyy")
End Sub
💬 Pergunta: Qual é o propósito desta macro?
✅ Resposta correta: Criar uma nova planilha com a data atual no nome
🧠 Explicação: Usa Worksheets.Add e Format(Date, "dd-mm-yyyy") para nomear dinamicamente.
➕ 82. Somar valores da Coluna C maiores que 50
Sub SomarAcimaDe50()
Dim cel As Range, total As Double
For Each cel In Range("C1:C20")
If IsNumeric(cel.Value) And cel.Value > 50 Then total = total + cel.Value
Next cel
MsgBox total
End Sub
💬 Pergunta: O que esta macro faz?
✅ Resposta correta: Soma os valores da Coluna C maiores que 50
🧠 Explicação: A condição If assegura que apenas valores numéricos maiores que 50 sejam somados.
📉 83. Somar valores menores que 20 na Coluna D
Sub SomarAbaixoDe20()
Dim cel As Range, total As Double
For Each cel In Range("D1:D20")
If IsNumeric(cel.Value) And cel.Value < 20 Then total = total + cel.Value
Next cel
MsgBox total
End Sub
💬 Pergunta: Qual será o resultado desta macro?
✅ Resposta correta: Exibe a soma dos valores menores que 20 na Coluna D
🧠 Explicação: Aplicação direta de If dentro de um For Each.
📄 84. Criar 10 novas planilhas nomeadas automaticamente
Sub Criar10Planilhas()
Dim i As Integer
For i = 1 To 10
Worksheets.Add.Name = "Planilha" & i
Next i
End Sub
💬 Pergunta: O que esta macro realiza?
✅ Resposta correta: Cria 10 novas planilhas chamadas de “Planilha1” até “Planilha10”
🧠 Explicação: Loop For com concatenação no nome.
🙈 85. Ocultar todas as planilhas exceto as que contêm “Relatório”
Sub MostrarRelatorios()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Visible = (InStr(ws.Name, "Relatório") > 0)
Next ws
End Sub
💬 Pergunta: Qual o efeito desta macro?
✅ Resposta correta: Oculta todas as planilhas exceto as que contêm “Relatório” no nome
🧠 Explicação: InStr localiza “Relatório” no nome da guia.
🔍 86. Mostrar nome da última planilha criada
Sub NomeUltimaPlanilha()
MsgBox Worksheets(Worksheets.Count).Name
End Sub
💬 Pergunta: O que esta macro faz?
✅ Resposta correta: Exibe o nome da última planilha criada
🧠 Explicação: Usa Worksheets.Count para apontar para a última aba.
➕ 87. Somar valores da célula B2 de todas as planilhas
Sub SomarB2Planilhas()
Dim ws As Worksheet, total As Double
For Each ws In Worksheets
total = total + ws.Range("B2").Value
Next ws
MsgBox total
End Sub
💬 Pergunta: Qual será o resultado?
✅ Resposta correta: Soma os valores da célula B2 de todas as planilhas
🧠 Explicação: O loop percorre cada ws e soma B2.
🗑 88. Excluir todas as planilhas exceto as que contêm “Dados”
Sub ManterSomenteDados()
Dim ws As Worksheet
Application.DisplayAlerts = False
For Each ws In Worksheets
If InStr(ws.Name, "Dados") = 0 Then ws.Delete
Next ws
Application.DisplayAlerts = True
End Sub
💬 Pergunta: O que esta macro realiza?
✅ Resposta correta: Exclui todas as planilhas exceto as que contêm “Dados”
🧠 Explicação: InStr = 0 significa que “Dados” não está no nome.
🔢 89. Contar células preenchidas na Coluna E
Sub ContarPreenchidos()
Dim cel As Range, cont As Integer
For Each cel In Range("E1:E100")
If Not IsEmpty(cel) Then cont = cont + 1
Next cel
MsgBox cont
End Sub
💬 Pergunta: Qual o propósito desta macro?
✅ Resposta correta: Exibe o número total de células preenchidas na Coluna E
🧠 Explicação: Usa Not IsEmpty para verificar preenchimento.
📌 90. Somar o valor da célula C3 em todas as planilhas
Sub SomarC3Planilhas()
Dim ws As Worksheet, total As Double
For Each ws In Worksheets
total = total + ws.Range("C3").Value
Next ws
MsgBox "Total: " & total
End Sub
💬 Pergunta: O que esta macro faz?
✅ Resposta correta: Exibe a soma dos valores da célula C3 em todas as planilhas
🧠 Explicação: O loop percorre cada planilha (ws) e soma o conteúdo da célula C3. Uma forma simples e eficaz de consolidar valores espalhados em diversas abas.
📈 91. Somar valores maiores que 30 na Coluna F
Sub SomarMaioresQue30()
Dim cel As Range, total As Double
For Each cel In Range("F1:F100")
If IsNumeric(cel.Value) And cel.Value > 30 Then total = total + cel.Value
Next cel
MsgBox total
End Sub
💬 Pergunta: Qual será o resultado?
✅ Resposta correta: Exibe a soma dos valores maiores que 30 na Coluna F
🧠 Explicação: Lógica com If para aplicar critério de soma.
📄 92. Criar nova planilha chamada “Resumo”
Sub CriarResumo()
Worksheets.Add.Name = "Resumo"
End Sub
💬 Pergunta: O que esta macro realiza?
✅ Resposta correta: Cria uma nova planilha chamada “Resumo”
🧠 Explicação: Worksheets.Add seguido de .Name.
🔎 93. Ocultar planilhas que não contêm “Análise” no nome
Sub MostrarAnalises()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Visible = (InStr(ws.Name, "Análise") > 0)
Next ws
End Sub
💬 Pergunta: Qual o efeito desta macro?
✅ Resposta correta: Oculta todas as planilhas exceto as que contêm “Análise”
🧠 Explicação: Utiliza InStr com lógica de exibição condicional.
🧭 94. Mostrar nome da primeira planilha criada
Sub MostrarPrimeiraPlanilha()
MsgBox Worksheets(1).Name
End Sub
💬 Pergunta: O que esta macro faz?
✅ Resposta correta: Exibe o nome da primeira planilha criada
🧠 Explicação: O índice Worksheets(1) refere-se à primeira guia.
🔢 95. Somar os valores da célula D4 de todas as planilhas
Sub SomaD4EmTodas()
Dim ws As Worksheet, total As Double
For Each ws In Worksheets
total = total + ws.Range("D4").Value
Next ws
MsgBox total
End Sub
💬 Pergunta: Qual será o resultado?
✅ Resposta correta: Exibe a soma dos valores na célula D4 de todas as planilhas
🧠 Explicação: Loop percorre todas as guias somando D4.
🔢 1. Copiar valores da Coluna A para a Coluna B
Sub CopiarColunaAparaB()
Dim i As Long
For i = 1 To 100
Cells(i, 2).Value = Cells(i, 1).Value
Next i
End Sub
💬 Pergunta: O que esta macro faz?
✅ Resposta correta: Copia os valores da Coluna A para a Coluna B
🧠 Explicação: O loop percorre as 100 primeiras linhas, copiando os valores de A para B linha por linha.
🔢 96. Exibir mensagem de boas-vindas
Sub BoasVindas()
MsgBox "Bem-vindo ao mundo do Excel VBA!"
End Sub
💬 Pergunta: O que esta macro faz?
✅ Resposta correta: Exibe uma mensagem de boas-vindas
🧠 Explicação: MsgBox é usado para interagir com o usuário por meio de janelas de mensagem.
🔢 97. Declarar uma variável inteira
Sub DeclararVariavel()
Dim idade As Integer
idade = 30
MsgBox idade
End Sub
💬 Pergunta: Qual é o valor exibido pela macro?
✅ Resposta correta: 30
🧠 Explicação: A variável idade recebe o valor 30 e é mostrada ao usuário.
🔢 98. Somar os valores da Coluna C
Sub SomarColunaC()
Dim cel As Range, soma As Double
For Each cel In Range("C1:C50")
If IsNumeric(cel.Value) Then soma = soma + cel.Value
Next cel
MsgBox "Soma: " & soma
End Sub
💬 Pergunta: O que será exibido?
✅ Resposta correta: A soma dos valores numéricos na Coluna C
🧠 Explicação: A macro acumula todos os valores válidos no intervalo C1:C50.
🔢 98. Proteger planilha com senha
Sub ProtegerPlanilha()
ActiveSheet.Protect Password:="1234"
End Sub
💬 Pergunta: O que acontece ao executar a macro?
✅ Resposta correta: A planilha é protegida contra edições com a senha 1234
🧠 Explicação: Protect ativa a proteção e impede alterações até que seja desprotegida.
🔢 99. Renomear a planilha ativa
Sub RenomearAba()
ActiveSheet.Name = "ResumoFinanceiro"
End Sub
💬 Pergunta: O que esta macro realiza?
✅ Resposta correta: Altera o nome da aba ativa para “ResumoFinanceiro”
🧠 Explicação: O comando Name modifica o título da planilha ativa.
🔢 100. Criar um gráfico automaticamente
Sub CriarGrafico()
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Range("A1:B5")
End Sub
💬 Pergunta: O que será criado?
✅ Resposta correta: Um gráfico de colunas com os dados de A1:B5
🧠 Explicação: Charts.Add inicia o gráfico e define sua origem de dados.
🔢 101. Desativar atualização de tela durante execução
Sub DesligarAtualizacao()
Application.ScreenUpdating = False
' tarefas longas aqui
Application.ScreenUpdating = True
End Sub
💬 Pergunta: Qual é o benefício dessa macro?
✅ Resposta correta: Evita piscadas e melhora a performance durante execução de macros
🧠 Explicação: Atualizações visuais são pausadas para acelerar o código.
🔢 102. Abrir outro arquivo Excel
Sub AbrirArquivo()
Workbooks.Open "C:\Planilhas\relatorio.xlsx"
End Sub
💬 Pergunta: O que essa macro faz?
✅ Resposta correta: Abre o arquivo “relatorio.xlsx” no caminho especificado
🧠 Explicação: O comando Workbooks.Open carrega o arquivo na memória.
🔢 103. Somar os valores da célula C3 em todas as planilhas
Sub SomarC3Todas()
Dim ws As Worksheet, total As Double
For Each ws In Worksheets
total = total + ws.Range("C3").Value
Next ws
MsgBox "Soma de C3: " & total
End Sub
💬 Pergunta: O que será exibido?
✅ Resposta correta: A soma dos valores da célula C3 em todas as planilhas
🧠 Explicação: Loop percorre cada aba e coleta os valores de C3.
🔢 104. Interromper execução da macro com Exit Sub
Sub CancelarSeVazio()
If IsEmpty(Range("A1")) Then
MsgBox "Célula A1 está vazia. Macro cancelada."
Exit Sub
End If
MsgBox "A1 tem valor: " & Range("A1").Value
End Sub
💬 Pergunta: O que esta macro faz?
✅ Resposta correta: Cancela a execução se A1 estiver vazia
🧠 Explicação: Exit Sub interrompe o código se a condição for atendida.
🔢 105. Exibir input para o usuário
Sub PerguntarNome()
Dim nome As String
nome = InputBox("Digite seu nome:")
MsgBox "Olá, " & nome
End Sub
💬 Pergunta: Qual o comportamento dessa macro?
✅ Resposta correta: Pergunta o nome do usuário e exibe uma saudação
🧠 Explicação: InputBox coleta entrada e o nome é usado com MsgBox.
🔢 106. Contar células preenchidas em B1:B20
Sub ContarPreenchidas()
Dim cel As Range, total As Integer
For Each cel In Range("B1:B20")
If Not IsEmpty(cel) Then total = total + 1
Next cel
MsgBox "Preenchidas: " & total
End Sub
💬 Pergunta: O que será mostrado?
✅ Resposta correta: A quantidade de células preenchidas na Coluna B
🧠 Explicação: Apenas células não vazias são consideradas.
🔢 107. Exibir nome da planilha ativa
Sub MostrarNomePlanilha()
MsgBox "Planilha ativa: " & ActiveSheet.Name
End Sub
💬 Pergunta: Qual é o efeito?
✅ Resposta correta: Exibe o nome da aba atualmente selecionada
🧠 Explicação: A propriedade ActiveSheet.Name retorna esse nome.
🔢 108. Somar os valores da célula D4 de todas as planilhas
Sub SomaD4EmTodas()
Dim ws As Worksheet, total As Double
For Each ws In Worksheets
total = total + ws.Range("D4").Value
Next ws
MsgBox total
End Sub
💬 Pergunta: Qual será o resultado?
✅ Resposta correta: Exibe a soma dos valores na célula D4 de todas as planilhas
🧠 Explicação: Loop percorre todas as guias somando D4.
🌟 “O entendimento do justo é fonte de vida.” – Provérbios 10:11