O que é vba no excel? (básico ao avançado)
O que é VBA?
VBA (Visual Basic for Applications) é uma linguagem de programação que permite automatizar quase tudo no Excel. Com o VBA, você pode consultar objetos do Excel e usar as propriedades, métodos e eventos associados a eles. Por exemplo, você pode criar uma tabela dinâmica, inserir um gráfico e exibir uma caixa de mensagem ao usuário usando uma macro.
A loucura é:
Para todas as tarefas que você faz manualmente em minutos, o VBA pode fazer isso em segundos, com um único clique, com a mesma precisão. Até você pode escrever códigos VBA que podem ser executados automaticamente quando você abre um documento, pasta de trabalho ou até mesmo em um horário específico.
Deixe-me mostrar um exemplo concreto:
Todas as manhãs, quando vou para o escritório, a primeira coisa que preciso fazer é criar uma tabela dinâmica com as vendas acumuladas do mês e apresentá-la ao meu chefe. Isso inclui as mesmas etapas, todos os dias. Mas quando percebi que poderia usar o VBA para criar uma tabela dinâmica e inseri-la com apenas um clique, economizei 5 minutos por dia.
É assim que o VBA funciona
VBA é uma linguagem orientada a objetos e como uma linguagem orientada a objetos, no VBA estruturamos nossos códigos de forma que usamos objetos e então definimos suas propriedades.
Em termos simples, primeiro definimos o objeto e depois a atividade que queremos realizar. Existem objetos, coleções, métodos e propriedades que você pode usar no VBA para escrever seu código.
>Não perca esta<
Digamos que você queira dizer a alguém para abrir uma caixa. As palavras que você usaria seriam “Abra a caixa”. É um inglês simples, não é? Mas quando se trata de VBA e de escrever uma macro, será:
Box.Open
Como você pode ver, o código acima é iniciado com a caixa que é nosso objeto aqui, então utilizamos o método “Open” para isso. Vamos ser um pouco mais específicos, digamos que se você quiser abrir a caixa que está na cor VERMELHA. E para isso o código será:
Boxes(“Red”).Open
No código acima, boxes são a coleção e open é o método. Se você tiver várias caixas, definimos uma caixa específica aqui. Aqui está outra maneira:
Box(“Red”).Unlock = True
No código acima, as caixas são novamente a coleção e Unlock é a propriedade definida como TRUE.
Para que é usado o VBA no Excel?
No Excel você pode usar o VBA para coisas diferentes. Aqui estão alguns:
- Insira dados : você pode inserir dados em uma célula, um intervalo de células. Você também pode copiar e colar dados de uma seção para outra.
- Automação de tarefas : você pode automatizar tarefas que exigem muito tempo. O melhor exemplo que posso dar é usar uma macro para criar uma tabela dinâmica.
- Crie uma função personalizada do Excel : com o VBA, você também pode criar uma função personalizada definida pelo usuário e usá-la na planilha.
- Criar suplementos : no Excel, você pode converter seus códigos VBA em suplementos e compartilhá-los com outras pessoas também.
- Integrar com outros aplicativos da Microsoft : Você também pode integrar o Excel com outros aplicativos da Microsoft. Por exemplo, você pode inserir dados em um arquivo de texto.
Noções básicas de programação Excel
1. Procedimento
Um procedimento em VBA é um conjunto de códigos ou uma única linha de código que executa uma atividade específica.
- SUB : O procedimento Sub pode executar ações, mas não retorna um valor (mas você pode usar um objeto para obter esse valor).
- Função : Utilizando o procedimento Function, você cria sua função, que pode utilizar na planilha ou nos demais procedimentos SUB e FUNCTION (Veja isto: Função VBA ).
2. Variáveis e constantes
Você precisa de variáveis e constantes para usar valores várias vezes no código.
- Variável : Uma variável pode armazenar um valor, tem um nome, você deve definir seu tipo de dados e pode modificar o valor que ela armazena. Como o nome sugere, “VARIÁVEL” não tem valor fixo. É como uma caixa de armazenamento armazenada no sistema.
- Constante : uma constante também pode armazenar um valor, mas você não pode alterar o valor durante a execução do código.
3. Tipos de dados
Você deve declarar o tipo de dados para VARIÁVEIS e CONSTANTES.
Quando você especifica o tipo de dados para uma variável ou constante, isso garante a validade dos seus dados. Se você omitir o tipo de dados, o VBA aplicará o tipo de dados Variant à sua variável (este é o mais flexível), o VBA não adivinhará qual deveria ser o tipo de dados.
Dica: opção VBA explícita
4. Objetos, propriedades e métodos
Visual Basic for Applications é uma linguagem orientada a objetos e para tirar o máximo proveito dela; você precisa entender os objetos do Excel.
A pasta de trabalho que você usa no Excel contém objetos diferentes e, com todos esses objetos, existem várias propriedades que você pode acessar e métodos que pode usar.
5. Eventos
Cada vez que você faz algo no Excel, é um evento: insira um valor em uma célula, insira uma nova planilha ou insira um gráfico. Abaixo está a classificação dos eventos de acordo com os objetos:
- Eventos de Aplicativo: Esses eventos estão associados ao próprio aplicativo Excel.
- Eventos de pasta de trabalho: esses eventos estão associados a ações que ocorrem em uma pasta de trabalho.
- Eventos de planilha: esses eventos estão associados à ação que ocorre em uma planilha.
- Eventos de gráfico: esses eventos estão associados a planilhas de gráficos (que são diferentes das planilhas).
- Eventos de formulário de usuário: esses eventos estão associados à ação que ocorre com um formulário de usuário.
- Eventos OnTime: Eventos OnTime são aqueles que podem acionar código em um horário específico.
- Eventos OnKey: Eventos OnKey são aqueles que podem acionar um código quando uma tecla específica é pressionada.
6.Escopo
O objeto range é a maneira mais comum e popular de se referir a um intervalo em seus códigos VBA. Você precisa se referir ao endereço da célula, deixe-me contar a sintaxe.
Worksheets(“Sheet1”).Range(“A1”)
7.Condições
Como qualquer outra linguagem de programação, você também pode escrever códigos para testar condições em VBA. Ele permite que você faça isso de duas maneiras diferentes.
- IF THEN ELSE : Esta é uma instrução IF que você pode usar para testar uma condição e, em seguida, executar uma linha de código se essa condição for TRUE. Você também pode escrever condições de aninhamento com
- SELECTT CASE : No caso de seleção, você pode especificar uma condição e, em seguida, diferentes casos de resultados de teste para executar diferentes linhas de código a serem executadas. É um pouco mais estruturado que a instrução IF.
8. Loops VBA
Você pode escrever códigos que podem repetir e repetir uma ação no VBA, e há várias maneiras de escrever códigos como este.
- For Next : A melhor opção para usar For Next é quando você deseja repetir um conjunto de ações um número fixo de vezes.
- For Each Next : É perfeito para usar quando você deseja iterar sobre um grupo de objetos de uma coleção de objetos.
- Do While Loop: A ideia simples por trás do Do While Loop é realizar uma atividade enquanto uma condição for verdadeira.
- Do Until Loop: No Do Until Loop, o VBA executa um loop e continua a executá-lo se a condição for FALSE.
9. Caixa de entrada e caixa de mensagem
- Caixa de entrada : Caixa de entrada é uma função que exibe uma caixa de entrada para o usuário e coleta uma resposta.
- Caixa de mensagem : a caixa de mensagem ajuda a exibir uma mensagem ao usuário, mas você tem a opção de adicionar botões à caixa de mensagem para obter a resposta do usuário.
10. Erros
O Excel não tem sorte quando se trata de erros de programação e você tem que lidar com eles de qualquer maneira.
- Erros de sintaxe : são como erros de digitação cometidos ao escrever códigos, mas o VBA pode ajudá-lo relatando esses erros.
- Erros de compilação: ocorrem quando você escreve código para executar uma atividade, mas essa atividade é inválida.
- Erros de tempo de execução : ocorre um erro RUNTIME durante a execução do código. Ele interrompe o código e exibe a caixa de diálogo de erro.
- Erro lógico : não é um erro, mas um erro ao escrever o código e às vezes pode causar problemas ao localizá-los e corrigi-los.
Escreva uma macro (programa VBA) no Excel
Tenho uma forte convicção de que inicialmente, quando alguém começa a programar no Excel, ELE/ELA deveria escrever cada vez mais códigos do zero. Quanto mais códigos você escreve do zero, mais você entende como o VBA funciona.
Mas você deve começar escrevendo códigos simples em vez de pular para códigos complexos. É por isso que não quero que você pense em nada complexo agora.
Você pode até escrever código de macro para criar uma tabela dinâmica, mas agora não quero que você pense tão longe. Vamos pensar em uma atividade que você deseja realizar em sua planilha e pode escrever um código para ela.
- Vá para a guia Desenvolvedor e abra o Editor do Visual Basic no botão “Visual Basic”.
- Depois disso, insira um novo módulo da “Janela Projeto” (Clique com o botão direito ➢ Inserir ➢ Módulo).
- Depois disso, vá até a janela de código e crie uma macro com o nome “Enter Done” (criamos um procedimento SUB), como fiz abaixo.
- A partir daí, você precisa escrever algum código que acabamos de falar acima. Espere um segundo e pense assim: você precisa especificar a célula na qual deseja inserir o valor e, em seguida, o valor que deseja inserir.
- Insira a referência da célula, e para isso você precisa utilizar o objeto RANGE e especificar o endereço da célula ali, conforme abaixo:
- Depois disso, insira um ponto e, no momento em que adicionar um ponto, você terá uma lista de propriedades que pode definir e atividades que pode realizar com o intervalo.
- A partir daqui você precisa selecionar a propriedade “Valor” e definir o texto que deseja inserir na célula “A1” e ao fazer isso, seu código ficará parecido com o abaixo.
- Por fim, acima da linha do código, insira o texto (“este código insere o valor “Concluído” na célula A5). Este é um comentário VBA que você pode inserir para definir a linha de código que você escreveu.
Sub Enter_Done() 'this code enters the value “Done” in the cell A5 Range("A1").Value = "Done" End Sub
Vamos entender isso…
Você pode dividir esse código em duas partes diferentes.
- Na PRIMEIRA parte, especificamos o endereço da célula usando o objeto RANGE. E, para se referir a uma célula usando um objeto de intervalo, você precisa colocar o endereço da célula entre aspas duplas (você também pode usar colchetes).
- Na SEGUNDA parte, especificamos o valor a ser inserido na célula. O que você fez foi definir a propriedade value para a célula A5 usando “.Value”. Depois disso, a próxima coisa que você especificou é o valor relativo à propriedade value . Sempre que você definir um valor (se for texto), você deverá colocar esse valor entre aspas duplas.
A melhor maneira de aprender VBA
Aqui listei alguns dos tutoriais mais incríveis (não em nenhuma sequência específica) que podem ajudá-lo a aprender VBA rapidamente.
- Os 100 principais exemplos úteis de códigos de macro do Excel [VBA]
- Como criar uma função definida pelo usuário [UDF] no Excel usando VBA
- Perguntas da entrevista VBA
1. Introdução ao VBA
- Adicionar uma guia de desenvolvedor
- Editor Visual Básico
- Adicione um comentário no VBA
- Adicione uma quebra de linha no código VBA
- Adicione uma nova linha (retorno de carro)
- Execute uma macro no Excel
- Pasta de trabalho pessoal de macros (personal.xlsb)
- Grave uma macro no Excel
- Subinstrução de saída VBA
- Janela imediata do VBA (Debug.Print)
- Módulo VBA
- Caixa de mensagem VBA (MsgBox)
- Objetos VBA
- VBA com declaração
2. Trabalhando com pastas de trabalho em VBA
- Compreendendo o objeto de pasta de trabalho VBA
- Copie um arquivo Excel (pasta de trabalho) usando VBA
- Ativar pasta de trabalho (arquivo Excel)
- Feche a pasta de trabalho (arquivo Excel)
- Combine pastas de trabalho (arquivos Excel)
- Crie uma nova pasta de trabalho (arquivo Excel)
- Excluir pasta de trabalho (arquivo Excel)
- Abrir pasta de trabalho (arquivo Excel)
- Proteger/desproteger pasta de trabalho (arquivo Excel)
- Renomear pasta de trabalho (arquivo Excel)
- Salve a pasta de trabalho (arquivo Excel)
- ThisWorkbook (arquivo Excel atual)
3. Trabalhe com planilhas
- Trabalhando com uma planilha Excel em VBA
- Como LIMPAR uma planilha inteira usando VBA no Excel
- Como copiar e mover uma planilha no Excel usando VBA
- Como contar planilhas usando VBA no Excel
- Como EXCLUIR uma FOLHA usando VBA no Excel
- Como ocultar e mostrar uma planilha usando VBA no Excel
- Como PROTEGER e DESPROTEGER uma planilha usando VBA no Excel
- Como renomear uma planilha usando VBA no Excel
- Como escrever código VBA para criar uma nova planilha no Excel (Macro)
- Como ativar uma planilha usando VBA
4. Trabalhando com intervalo e células
- Trabalhando com intervalo e células em VBA
- Contar linhas usando VBA no Excel
- Fonte Excel VBA (cor, tamanho, tipo e negrito)
- Excel VBA Ocultar e mostrar uma coluna ou linha
- Como aplicar bordas em uma célula usando VBA no Excel
- Como encontrar a última linha, coluna e célula usando VBA no Excel
- Como inserir uma linha usando VBA no Excel
- Como mesclar células no Excel usando código VBA
- Como selecionar um intervalo/célula usando VBA no Excel
- Como SELECIONAR TODAS as células em uma planilha usando VBA
- Como usar ActiveCell em VBA no Excel
- Como usar o método de células especiais em VBA no Excel
- Como usar a propriedade UsedRange em VBA no Excel
- Ajuste automático VBA (linhas, colunas ou planilha inteira)
- VBA ClearContents (de uma célula, intervalo ou planilha inteira)
- Intervalo de cópia do VBA para outra planilha + pasta de trabalho
- VBA Insira um valor em uma célula (Definir, Obter e Alterar)
- Coluna de inserção VBA (única e múltipla)
- Intervalo denominado VBA | (Estático + Seleção + Dinâmico)
- Deslocamento de intervalo VBA
- Faixa de classificação VBA | (Decrescente, múltiplas colunas, orientação de classificação
- VBA Wrap Text (célula, intervalo e planilha inteira)
- Como destacar valores duplicados no Excel usando códigos VBA
- Como extrair endereço de hiperlink (URL) no Excel usando VBA UDF
5. Variáveis e constantes
6. Cachos
7.Condições
- Instrução VBA IF – IF Then Else
- Como verificar se existe uma planilha usando VBA no Excel
- VBA Verifique se uma célula está vazia + várias células
- VBA Verifique se existe uma pasta de trabalho em uma pasta (arquivo Excel)
- VBA Verifique se uma pasta de trabalho está aberta (arquivo Excel)
- Saída do VBA SE
- VBA IF And (teste de múltiplas condições)
- VBA SE NÃO
- VBA IF OR (várias condições de teste)
- VBA aninhado SE
- Instrução VBA SELECT CASE (testar múltiplas condições)
8. Cálculos
- Como calcular a média de valores no Excel usando VBA
- Como obter a data e a hora atual usando VBA
- Como adicionar valores no Excel usando VBA
- Como usar a função de correspondência no VBA
- Como usar MOD em VBA
- Número aleatório
- Cálculo VBA (célula, intervalo, linha e pasta de trabalho)
- Concatenar VBA
- Função de planilha VBA (use funções do Excel em uma macro)
9. Tabelas
10. Erros
- Tratamento de erros VBA
- Erro de automação VBA (Erro 440)
- Erro VBA 400
- Chamada de procedimento VBA inválida ou erro de argumento (Erro 5)
- O objeto VBA não suporta esta propriedade ou erro de método (Erro 438)
- Erro obrigatório de objeto VBA (Erro 424)
- Erro de falta de memória do VBA (Erro 7)
- Erro de estouro de VBA (Erro 6)
- Erro de tempo de execução do VBA (Erro 1004)
- Erro de execução do índice VBA fora do intervalo (Erro 9)
- Erro de incompatibilidade de tipo VBA (Erro 13)
11. Funções
- Principais funções do VBA
- Função VBA ABS (obter valor absoluto)
- Função de matriz VBA
- Função VBA ATN (sintaxe + exemplo)
- Função VBA CBOOL (sintaxe + exemplo)
- Função VBA CBYTE (sintaxe + exemplo)
- Função VBA CCUR (sintaxe + exemplo)
- Função VBA CDATE (sintaxe + exemplo)
- Função VBA CDBL (sintaxe + exemplo)
- Função VBA CDEC (sintaxe + exemplo)
- Função VBA CHR (sintaxe + exemplo)
- Função VBA CINT (sintaxe + exemplo)
- Função VBA CLNG (sintaxe + exemplo)
- Função VBA COS (sintaxe + exemplo)
- Função VBA CSNG (sintaxe + exemplo)
- Função VBA CSTR (sintaxe + exemplo)
- Função VBA CVAR (sintaxe + exemplo)
- Função VBA CVERR (sintaxe + exemplo)
- Função VBA DATE (sintaxe + exemplo)
- Função VBA DATEADD (sintaxe + exemplo)
- Função VBA DATEPART (sintaxe + exemplo)
- Função VBA DATESERIAL (sintaxe + exemplo)
- Função VBA DATEVALUE (sintaxe + exemplo)
- Função VBA DAY (sintaxe + exemplo)
- Função VBA DDB (sintaxe + exemplo)
- Função VBA EXP (sintaxe + exemplo)
- Função VBA FileDateTime
- Função VBA FILTER (sintaxe + exemplo)
- Função VBA FIX (sintaxe + exemplo)
- Função VBA FORMAT (sintaxe + exemplo)
- Função VBA FORMATCURRENCY (sintaxe + exemplo)
- Função VBA FORMATDATETIME (sintaxe + exemplo)
- Função VBA FORMATNUMBER (sintaxe + exemplo)
- Função VBA FORMATPERCENT (sintaxe + exemplo)
- Função VBA FV (sintaxe + exemplo)
- Função VBA HEX (sintaxe + exemplo)
- Função VBA HOUR (sintaxe + exemplo)
- Função VBA IIF (sintaxe + exemplo)
- Função VBA INSTR (sintaxe + exemplo)
- Função VBA INSTRREV (sintaxe + exemplo)
- Função VBA INT (sintaxe + exemplo)
- Função VBA IPMT (sintaxe + exemplo)
- Função VBA IRR (sintaxe + exemplo)
- Função VBA ISARRAY (sintaxe + exemplo)
- Função VBA ISDATE (sintaxe + exemplo)
- Função VBA ISEMPTY (sintaxe + exemplo)
- Função VBA ISERROR (sintaxe + exemplo)
- Função VBA ISMISSING (sintaxe + exemplo)
- Função VBA ISNULL (sintaxe + exemplo)
- Função VBA ISNUMERIC (sintaxe + exemplo)
- Função VBA ISOBJECT (sintaxe + exemplo)
- Função VBA JOIN (sintaxe + exemplo)
- Função VBA LBOUND (sintaxe + exemplo)
- Função VBA LCASE (sintaxe + exemplo)
- Função VBA LEFT (sintaxe + exemplo)
- Função VBA LEN (sintaxe + exemplo)
- Função VBA LOG (sintaxe + exemplo)
- Função VBA LTRIM (sintaxe + exemplo)
- Função VBA MID (sintaxe + exemplo)
- Função VBA MINUTE (sintaxe + exemplo)
- Função VBA MIRR (sintaxe + exemplo)
- Função VBA MONTH (sintaxe + exemplo)
- Função VBA MONTHNAME (sintaxe + exemplo)
- Função VBA NOW (sintaxe + exemplo)
- Função VBA NPER (sintaxe + exemplo)
- Função VBA NPV (sintaxe + exemplo)
- Função VBA OCT (sintaxe + exemplo)
- Função VBA PMT (sintaxe + exemplo)
- Função VBA PPMT (sintaxe + exemplo)
- Função VBA PV (sintaxe + exemplo)
- Função VBA RATE (sintaxe + exemplo)
- Função VBA REPLACE (sintaxe + exemplo)
- Função VBA RIGHT (sintaxe + exemplo)
- Função VBA RND (sintaxe + exemplo)
- Função VBA ROUND (sintaxe + exemplo)
- Função VBA RTRIM (sintaxe + exemplo)
- Função VBA SECOND (sintaxe + exemplo)
- Função VBA SGN (sintaxe + exemplo)
- Função VBA SIN (sintaxe + exemplo)
- Função VBA SLN (sintaxe + exemplo)
- Função VBA SPACE (sintaxe + exemplo)
- Função VBA SPLIT (sintaxe + exemplo)
- Função VBA SQR (sintaxe + exemplo)
- Função VBA STR (sintaxe + exemplo)
- Função VBA STRCOMP (sintaxe + exemplo)
- Função VBA STRCONV (sintaxe + exemplo)
- Função VBA STRING (sintaxe + exemplo)
- Função VBA STRREVERSE (sintaxe + exemplo)
- Função VBA SYD (sintaxe + exemplo)
- Função VBA TAN (sintaxe + exemplo)
- Função VBA TIME (sintaxe + exemplo)
- Função VBA TIMER (sintaxe + exemplo)
- Função VBA TIMESERIAL (sintaxe + exemplo)
- Função VBA TIMEVALUE (sintaxe + exemplo)
- Função VBA TRIM (sintaxe + exemplo)
- Função VBA UBOUND (sintaxe + exemplo)
- Função VBA UCASE (sintaxe + exemplo)
- Função VBA VAL (sintaxe + exemplo)
- Função VBA WEEKDAY (sintaxe + exemplo)
- Função VBA WEEKDAYNAME (sintaxe + exemplo)
- Função VBA YEAR (sintaxe + exemplo)
12.Outros
- Como usar a caixa de entrada no VBA
- VBA cria e grava em um arquivo de texto
- Atualização da tela VBA | Como ativar e desativar
- Barra de status do VBA (ocultar, mostrar e progredir)
- Comandos de espera e suspensão do VBA para suspender e atrasar
- Um guia passo a passo para criar uma tabela dinâmica no Excel usando VBA – MACRO CODE
- Como pesquisar no Google usando código VBA
- Como inserir uma caixa de seleção no Excel