Nesta lição você vai aprender algumas dicas de VBA para iniciantes. O VBA significa Visual Basic for Applications e é a linguagem de programação da Microsoft para Excel e todos os outros programas do Microsoft Office, como Word e PowerPoint. Com o VBA, você pode criar macros para automatizar funções repetitivas de processamento de palavras e dados e gerar formulários, gráficos e relatórios personalizados. Neste tutorial vamos ver algumas dicas de VBA para iniciantes começarem a usar em suas planilhas.
As dicas de VBA para iniciantes que vamos ver aqui, são compostas em planilhas de Excel. E isso lhe permite criar mais ferramentas de programação para suas planilhas.
Nessa primeira parte vamos mostrar como trabalhar com: SUBS, SHEETS, RANGES e BASICS. Eu não posso dar suporte para Visual Basic Application, mesmo porque, não um profissional da área, mas posso mostrar alguns conceitos básicos para você tomar gosto pelo VBA e acrescentar algo mais técnico em suas planilhas.
[wpsm_toplist]
Índice
- Subs: Primeira parte do VBA para aprender
- Comments (Comentários): Dica de VBA 2
- Objetos, Propriedades e Métodos: Dica de VBA 3
- Objeto de intervalo: Dica de VBA 4
- Texto e introdução às variáveis: Dica de VBA 5
- Intervalos nomeados: Dica de VBA 6
- Faixas de Células: Dica de VBA 7
- Fórmulas de células: Dica de VBA 8
- Propriedade de Valor Continuação: Dica de VBA 9
- Limpar método: Dica de VBA 10
- Planilhas e pastas de trabalho: Dica de VBA 11
- Fórmulas de células: Dica de VBA 12
- Ativar e selecionar: Dica de VBA 13
Subs: Primeira parte do VBA para aprender
Ao trabalhar com VBA, você precisa criar procedimentos para armazenar seu código. O mais básico tipo de procedimento é chamado de "Sub". Para criar um novo procedimento sub, abra o editor de Visual Basic e digite Sub.
Digite um "olá pessoal" e pressione enter. Esta foi a primeira de nossas dicas de VBA para quem está começando!
- Crie um procedimento SUB intitulado "olá pessoal".
Sub Macro1()
End Sub
[wpsm_ads1]
Você já criou um sub nomeado como "olá pessoal". Agora, notará que o editor VBA completa a configuração do sub automaticamente adicionando a linha End Sub. Todo o seu código deve ficar entre o início e o fim do procedimento.
Comments (Comentários): Dica de VBA 2
Você pode adicionar comentários em qualquer lugar do seu código procedendo ao comentário com um apóstrofo (')
'Este é um comentário. Comentários podem ser colocados em sua própria linha ou no final de uma linha de código:
linha = 5 'Comece na linha 5
- Adicione uma linha de comentário que diga: "Estou programando!"
Sub Macro1() 'Eu estou programando! End Su
Os comentários tornam seu código muito mais fácil de seguir. Especialistas recomendam desenvolver o hábito de criar cabeçalhos de seção para identificar o que cada parte do código faz. Convira as próximas dicas de VBA:
Objetos, Propriedades e Métodos: Dica de VBA 3
Objects, Properties and Methods
Você pode programar o VBA para fazer qualquer coisa no Excel referenciando os objetos apropriados, propriedades e métodos.
- Objetos são itens como pastas de trabalho, planilhas, células, formas, caixas de texto ou comentários. Os objetos tem propriedades, por exemplo: valores, formatos e configurações, que você pode alterar.
- Métodos são ações que podem ser aplicado a objetos, por exemplo: copiar, excluir, colar e limpar. Vejamos um exemplo:
Range("A1").Font.Size = 15 Sheets(1).Delete
O que eu quero dizer no exemplo acima
Objects: Range("A1") , Sheets(1) Properties: Font.Size Methods: Delete
Objeto de intervalo: Dica de VBA 4
- Range Object
Agora vamos fazer um exemplo para atribuição de propriedades ao objeto range. Para atribuir o valor de 1 à célula A1 você digita: range("a1").valor = 1
Atribua o valor de 2 à célula A2
Sub Macro1() Range("A2").Value = 2 End Sub
Nota: nos exemplos acima, nenhum nome de planilha foi especificado. Se nenhum nome de planilha for especificado, o VBA entende que você está se referindo à planilha ativa atualmente no VBA. Vamos aprender mais sobre isso mais tarde, em outras dicas de VBA.
Texto e introdução às variáveis: Dica de VBA 5
- Text & Intro to Variables
Ao atribuir valores numéricos às células, basta digitar o número. No entanto, ao atribuir um
string de texto para uma célula, você deve colocar o texto entre aspas, assim como se faz nas função do Excel, como a função SE.
Por quê? Sem as aspas, o VBA pensa que você está inserindo uma variável. Vamos aprender sobre variáveis no próximo capítulo das dicas de VBA.
Atribuir o valor de "string of text" à célula A3
Sub Macro1()
Range("A3").Value = "string do texto"
End Sub
Há mais dois detalhes importantes a serem lembrados ao trabalhar com strings. Primeiro, usando um conjunto de citações que não contém nada irá gerar um valor "em branco".
range("a3").value = ""
Segundo, você pode usar o operador & para combinar strings de texto:
“string of” and “text”
Atribua o valor de "EZ" à célula A3 separando "EZ" em 2 strings de texto e
combinando-os
Sub Macro1() Range("A3").Value = "E" & "Z" End Sub
Qualquer coisa no VBA que esteja entre aspas é considerada uma string de texto. Lembre-se disso quando você insere um intervalo, nome de planilha ou pasta de trabalho, você coloca o intervalo entre aspas (ex "A1"), que é apenas uma sequência de texto. Em vez de escrever explicitamente a string de texto, você pode usar variáveis.
[wpsm_ads1]
Dim strRng
strRng = "A1"
range(strRng).value = 1
is the same as
range("a1").value = 1
Já declaramos a variável "Row" e igualamos a 5. Agora, usando o
variável, defina o intervalo "A5" = 1.
Sub Macro1()
Dim Row
Row = 5
Range("A" & Row).Value = 1
End Sub
Podemos aprender mais sobre variáveis em uma lição futura.
Intervalos nomeados: Dica de VBA 6
- Named Ranges
Named Ranges são células que receberam um nome personalizado. Para referenciar um intervalo nomeado, em vez de digitar a referência da célula, por exemplo: "A1", digite o nome do intervalo , como por exemplo: "criar".
Sub Macro1() Range("criar").Value = 0.05 End Sub
Os intervalos nomeados são muito úteis ao trabalhar no Excel, mas são absolutamente essenciais para usar ao trabalhar com VBA. O motivo é: se você adicionar, ou excluir linhas e colunas, todas as suas fórmulas do Excel serão atualizadas automaticamente, mas seu código VBA permanecerá inalterado.
Por outro lado, se você codificou uma referência a um intervalo específico no VBA, ele pode não estar mais correto. Portanto, a única proteção contra isso é nomear seus intervalos. Siga mais dicas de VBA, agora a de número 7.
Faixas de Células: Dica de VBA 7
- Ranges of Cells
Agora, em vez de atribuir um valor a uma única célula, vamos atribuir um valor a um intervalo de células com um linha de código.
Atribua o valor de 5 às células A2:B3.
Sub Macro1()
Range("A2:B3").Value = 5
End Sub
Fórmulas de células: Dica de VBA 8
- Cell Formulas
O VBA pode atribuir fórmulas a células usando a propriedade "formula".
Exemplo: range("c3").formula = "=1 + 2"
Atribua a fórmula de 5*2 ao intervalo A2:A3
Sub Macro1() Range("A2:A3").Formula = "=5*2" End Sub
A propriedade .Formula atribuirá a mesma fórmula exata a cada célula no intervalo especificado. Portanto, se você estiver usando referências de células, as referências serão codificadas com base no que você inseriu nas cotações. Muitas vezes você desejará atribuir uma fórmula com referências relativas. Por exemplo: aplicar uma fórmula a uma coluna inteira, onde a fórmula em cada linha precisa fazer referência.
[wpsm_ads1]
Propriedade de Valor Continuação: Dica de VBA 9
- Value Property Continued
Você também pode atribuir um valor a uma célula referindo-se ao valor de outra célula. Exemplo:
range(“a1”).value = range(“b1”).value.
Defina a célula A2 = B2 usando o método que você acabou de aprender.
Sub Macro1()
Range("A2").Value = Range("B2").Value
End Sub
Importante! Você pode atribuir um valor de célula única a uma ou mais células de uma só vez:
Range(“a1:a3”).value = range(“b1”).value
Mas se você quiser atribuir um intervalo de valores de célula, você deve certificar-se de que os tamanhos do intervalo são os mesmos, caso contrário, você receberá um erro.
Range(“a1:a3”).value = range(“b1:b3".value
Limpar método: Dica de VBA 10
- Clear Method
Há também muitos métodos que podem ser aplicados a intervalos. Pense nos métodos como "actions".
Exemplos de métodos incluem: .clear, .delete e .copy. Tente aplicar o método .clear, isso vai
limpar todas as propriedades da célula (valores, fórmulas, formatos, comentários, etc.)
Limpar célula A2
Sub Macro1() Range("A2").Clear End Sub
Agora use o método .ClearContents para limpar apenas o conteúdo da célula, mantendo a formatação da célula e todas as outras propriedades. Isso equivale a pressionar a tecla Delete.
Limpe apenas o conteúdo da célula A2
Sub Macro1() Range("A2").ClearContents End Sub
Planilhas e pastas de trabalho: Dica de VBA 11
Quando você se refere a um intervalo sem declarar explicitamente uma planilha ou pasta de trabalho, o VBA funcionará com qualquer planilha ou pasta de trabalho que esteja atualmente ativa no procedimento. Em vez disso, você pode informar explicitamente ao VBA quais planilhas e pastas de trabalho poderá usar - se aplicável. Veja o exemplos abaixo.
No WS or WB, usará o que estiver ativo.
range(“a1”).value = 1
No WB, usará o que estiver ativo, mas um WS será declarado. Isso é bom se seus procedimentos não referenciar outras pastas de trabalho.
Sheets(“Inputs”).range(“a1”).value = 1
Fórmulas de células: Dica de VBA 12
- Cell Formulas
Defina a célula A2 da planilha "Dados" para "texto"
Sub Macro1() Sheets("Data").Range("A2").Value="text" End Sub
- Ambos WB e WS são definidos.
- Workbooks(“wb1.xlsm”).sheets(“inputs”).range(“a1”).value = 1
- Observe que, ao definir uma pasta de trabalho, você deve adicionar a extensão de arquivo apropriada (.xls, xlsm, etc.). Tente você mesmo:
Sub Macro1()
Workbooks("wb1.xlsm").Sheets("Data").Range("A2").Value = "text"
End Sub
Como você deve ter notado, é muita digitação para definir planilhas e pastas de trabalho. Imagine digitando isso repetidamente… Em vez disso, você deve utilizar variáveis de planilha e pasta de trabalho para simplifique seu código.
[wpsm_ads2]
Ativar e selecionar: Dica de VBA 13
- Activate and Select
Se você já gravou uma macro, provavelmente já viu .Activate e .Select usados para ativar ou
selecionar um objeto (por exemplo, um intervalo). Esses comandos efetivamente mudam o foco para o objeto desejado, ou no plural:
range(“a1”).select
Selection.value = 1
O código acima é idêntico a este:
range(“a1”).value = 1
A segunda instância é muito mais curta, mais fácil de seguir e menos propensa a erros. Na verdade, você pode quase nunca usar .activate ou .select. Você quase sempre pode realizar a mesma tarefa escrevendo código mais inteligente. Se você estiver editando o código de uma macro gravada, considere "limpar" seu
código de .activate e .selects.
A única vez que você deve usar esses comandos é ao mudar o foco para o usuário.
Por exemplo: você pode querer adicionar um botão de navegação para pular para uma planilha diferente:
Sub nav_Index()
Sheets(“index”).activate
End Sub
Ative a planilha "Inputs"
Sub Macro1()
Sheets(“Inputs”).Activate
End Sub
Qual é a diferença entre ativar e selecionar? Apenas um objeto do mesmo tipo pode ser
ativo por vez. Exemplo: activesheet, activeworkbook, activecell, etc. Enquanto vários objetos do mesmo tipo podem ser selecionados de uma só vez - um intervalo de células, várias formas, várias planilhas, etc.
## Resumo das dicas de Visual Basic Applications ##
[wpsm_ads2]
Existem vários objetos, propriedades e métodos que você pode acessar com o VBA. É
impossível cobri-los todos em um tutorial. Felizmente, todos eles operam usando os mesmos princípios e sintaxe. E você pode acompanhar a próxima dica de VBA, em breve... Compre Livros de Excel!