Escolar Documentos
Profissional Documentos
Cultura Documentos
A criação de macros ou sequência de procedimentos dentro do Excel utiliza a linguagem de programação do Visual
Basic voltada para aplicações (Visual Basic for Aplications ou VBA). Esses procedimentos são chamados através dos
próprios comandos já existentes no VBA portanto, é necessário que se conheça a estrutura de cada recurso a ser
montado.
Sub
Para criar uma Sub deve-se seguir a sintaxe abaixo. Como toda estrutura no VBA, devemos inicia-la com o seu nome,
no caso: Sub e termina com End Sub:
Sub <nome_da_sub>()
...
<corpo_da_sub>
...
End Sub
A Sub não recebe parâmetros para sua execução, isto é, não contém conteúdo dentro dos parênteses. O seu nome,
assim como o nome de qualquer estrutura criada no VBA, não pode conter espaço ou iniciar com números. Dentro do
corpo_da_sub é possível colocar quantos comandos e estruturas forem necessárias bem como chamar outra Sub
dentro dela.
Entre a Sub e a Function existe uma diferença principal que é o retorno de valores. A Sub não retorna valores, apenas
executa uma sequência de procedimentos que são criados dentro do seu corpo. Já a Function, quando são executadas
dentro da planilha, assim como as funções já existentes no Excel, retorna algo.
Outra diferença entre as duas estruturas é a sua chamada/execução. A Sub deve ser chamada através de algum objeto
ou botão e a Function é utilizada dentro de alguma célula em frente ao sinal de = (igual).
Function
Na definição da Function é possível passar quantos parâmetros forem necessários , separando-os por virgula.
Lembrando que para cada parâmetro definido é necessário informar um nome e o seu tipo no seguinte formato:
<nome> As <tipo>
Por exemplo, o exemplo a seguir define um parâmetro chamado “Numero” do tipo “Inteiro”:
Numero As Integer
O comando a seguir define qual será o valor retornado pela função quando está for chamada/executada.
<nome_da_function> = (valor)
Tipos de dados
Para criar parâmetros ou variáveis no VBA é necessário identificar, além do nome, o seu tipo, que são:
Tipo Valores
Boolean Verdadeiro (true) ou falso (false)
Byte Números inteiros ente 0 e 255
Integer Números inteiros entre -32.768 e 32.767
Long Números inteiros entre -2.147.483.648 e 2.147.483.648
Date Datas
Double Números com casas decimais
Currency Formato monetário
String Conjunto de caracteres
Variáveis
As variáveis são estruturas criadas para podermos armazenar um determinado valor, seja ele atribuído diretamente,
pelo usuário ou o resultado de alguma expressão.
Por exemplo:
Dim resultado As Double
Para atribuir um valor a uma variável utilizamos o sinal de = (igual), por exemplo:
resultado = (75 * 0.15) – 10
Operadores
Os operadores dentro da linguagem VBA tem a função de comparar, atribuir ou relacionar valores. Os seguintes
operadores estão disponíveis:
Operadores relacionais
<> (Desigualdade) O valor da primeira expressão é diferente do valor da segunda? 23 <> 33 ' True
23 <> 23 ' False
23 <> 12 ' True
< (Menor que) O valor da primeira expressão é menor que o valor da segunda? 23 < 33 ' True
23 < 23 ' False
23 < 12 ' False
> (Maior que) O valor da primeira expressão é maior que o valor da segunda? 23 > 33 ' False
23 > 23 ' False
23 > 12 ' True
<= (Menor que ou igual a) O valor da primeira expressão é menor ou igual ao valor da segunda? 23 <= 33 ' True
23 <= 23 ' True
23 <= 12 ' False
>= (Maior que ou igual a) O valor da primeira expressão é maior ou igual ao valor da segunda? 23 >= 33 ' False
23 >= 23 ' True
23 >= 12 ' True
Operadores aritméticos
Operador Função
\ Localizar o quociente de um valor numérico é divi dido por outra (sem o restante)
Mod Encontrar o resto de um valor numérico é dividido por outra (sem o quociente)
Operadores lógicos
Operador Função
Not Negação
Or “Ou” lógico
Estruturas de controle
Para a construção de códigos mais elaborados e precisos, é necessário a utilização de estruturas de controle. Estas
estruturas permitem fazer decisões, repetições, desvios de fluxo, entre outras. As estruturas podem ser utilizadas em
qualquer trecho do código, inclusive dentro de outras estruturas ou nelas próprias.
Estrutura Função
If – Then - Else Testa uma determinada condição (à frente do comando If) sendo possível atribuir uma lista de
comandos caso a condição seja verdadeira ou caso a condição seja c ontrária (Else).
For - Next Instrução para executar repetidamente um determinado trecho de código
While - Wend Instrução para executar repetidamente um determinado trecho de código porém até que uma
condição deixe de ser satisfeita
Select - Case Seleciona um determinado valor e direciona o fluxo para o item que atender a mesma condição
If – Then - Else
A estrutura If-Then-Else assemelha-se à fórmula “SE” do Excel. Nela temos uma determinada condição inicial para
fazermos o teste e podemos atribuir um comando caso essa condição seja verdadeira ou, também, caso seja falsa.
Segue a sintaxe do comando:
If <condição> Then
<comandos_caso_a_condicao_seja_verdadeira>
Else
<comandos_caso_a_condicao_seja_falsa>
End If
Exemplo de utilização:
If numeroX > 0 Then
MsgBox(“O número é positivo”)
Else
MsgBox(“O número é negativo”)
End If
For - Next
O comando For – Next permite a execução de uma tarefa durante um determinado número de vezes. A sua sintaxe é:
For <inicialização> To <valor_final> Step <quantidade_a_ser_incrementada>
<comandos_a_serem_repetidos>
Next
Para obter a soma entre todos os números de 1 a 100 pode ser montada a seguinte estrutura:
For numero = 1 To 100
Soma = numero + soma
Next
While – Wend
Também responsável por repetir uma sequência de comandos, porém enquanto uma dada condição for válida. A sua
sintaxe é:
While <condição>
<comandos_a_serem_repetidos>
Wend
Um exemplo de utilização:
Dim numero As Integer
Numero = 5
Select – Case
Utilizado para comparar uma determinada condição e aplicar situações para cada um de seus casos. Sua sintaxe é:
Select Case <expressão>
Case Is <valor_ou_condicao>
<instruções_a_serem_relizadas_para_esse_caso>
Case Is <valor_ou_condicao>
<instruções_a_serem_relizadas_para_esse_caso>
.
.
.
Case Else
<instruções_a_serem_relizadas_se_não_nenhum_caso_acima_for_validado>
End Select
É possível usar quantos “Case Is” forem necessários. Para o “Case Else” só é permitido utilizar uma vez porém, seu uso
não é obrigatório.
Exemplo de utilização:
Dim numero As Integer
numero = 2
Podemos receber valores de diversas maneiras porém, o comando InputBox traz uma interface para essa finalidade.
Já o comando MsgBox é responsável pela saída (exibição) de valores.
Exemplo de utilização:
Dim numero As Integer
numero = InputBox("Informe um número inteiro: ")
MsgBox ("O número digitado foi: " & numero)
Este é somente um guia introdutório para a Linguagem VBA. Caso queira mais exemplos e a lista dos possíveis
comandos a serem utilizados consulte a documentação oficial abaixo:
Referências
https://msdn.microsoft.com/pt-br/library/y4wf33f0.aspx
https://msdn.microsoft.com/pt-br/library/sh9ywfdk.aspx