Você está na página 1de 112
Algoritmos

Algoritmos

Índice

Índice

ÍNDICE

APRESENTAÇÃO

3

PROGRAMANDO

7

VARIÁREIS9

OPERADORES

22 1
22
1

13

FUNÇÕES 20

ESTRUTURAS DE CONTROLE

ESTRUTURAS DE REPETIÇÃO

Capítulo 1: Apresentação

Capítulo 1: Apresentação

CC

A p

AA

r

PP

e

ÍÍ

s

TT

e

UU

n

t

LL

a

OO 11

ç

ã

o

Tópicos deste capítulo  Introdução  O que é um programa?  Entrada e Saída
Tópicos deste capítulo
 Introdução
 O que é um programa?
 Entrada e Saída de Dados
Objetivos
Ao final deste módulo, você estará apto a:
 Definir o que é um algoritmo;
 Definir o que é um programa;
 Criar algoritmos simples;
Capítulo 1: Apresentação

Capítulo 1: Apresentação

Algoritmos

Um algoritmo é uma seqüência de instruções definidas para serem executadas mecanicamente. Todos os dias realizamos algoritmos e não percebemos. Basicamente todas as manhãs nós nos levantamos da cama, tomamos o café da manhã, nos arrumamos e vamos ao trabalho. Entre cada uma dessas ações descritas, realizamos várias outras ações. Nosso próprio corpo realiza algoritmos o tempo inteiro realizando decisões. Se nos machucamos, sentimos dor. Se o ambiente externo tem temperatura baixa, o corpo treme para tentar aumentar a temperatura novamente.

Todo algoritmo segue uma seqüência lógica. Geralmente um algoritmo é lido de cima pra baixo e da esquerda pra direita. Cada linha de código é lida e, caso não haja nenhum erro, executada e logo depois é lida a próxima linha e assim sucessivamente até terminarem as linhas do algoritmo.

Como exemplo de algoritmo, podemos pensar em um ser humano andando. Observe:

1. Levantar a perna direita

2. Inclinar o corpo para frente

3. Baixar a perna direita

4. Apoiar o pé direito no chão

5. Levantar a perna esquerda

6. Baixar a perna esquerda

7. Apoiar o pé esquerdo no chão

8. Levantar a perna direita

Apoiar o pé esquerdo no chão 8. Levantar a perna direita Outro exemplo de algoritmo seria

Outro exemplo de algoritmo seria fazer um calculo simples como a soma ou multiplicação de dois números como no exemplo abaixo:

1. Ler primeiro número

2. Ler segundo número

3. Somar os dois números lidos

4. Exibir o resultado

O que é um programa?

Um programa é um ou mais algoritmos escritos numa linguagem de programação. Existem diversas linguagens de programação atualmente. Grosso modo, as linguagens mais fáceis são chamadas de “linguagens de alto nível” e as mais difíceis são chamadas de “linguagens de baixo nível”. As Linguagens de Baixo nível são assim chamadas por que você precisa trabalhar mandando comandos e recebendo respostas direto para o hardware. As Linguagens de Alto nível são assim chamadas por

Capítulo 1: Apresentação

Capítulo 1: Apresentação

que elas “escondem” as tarefas difíceis como trabalhar direto com hardware, o que facilita o desenvolvimento do código e aumenta a velocidade de programação.

Exercícios:

1 - Escreva um algoritmo para pentear o cabelo. Tente ser bem especifico e detalhado em cada ação realizada.

ser bem especifico e detalhado em cada ação realizada. Treinamento em Algoritmo Copyright  – NSI
Capítulo 1: Apresentação

Capítulo 1: Apresentação

Entrada e saída de dados

Muitas vezes não percebemos, mas para haver processamento, é necessário ter informações. Um programa precisa que dados sejam inseridos nele para que eles sejam processados e retorne algum resultado daquele processamento. Esses dados podem ser inseridos pelo usuário do programa e algumas vezes o usuário não sabe que está inserindo dados. Digitar texto em um formulário eletrônico ou o simples ato de copiar um arquivo para o seu computador é considerado entrada de dados.

para o seu computador é considerado entrada de dados. Exercício: Escreva alguns modos de entrada e

Exercício: Escreva alguns modos de entrada e saída de dados. Ao lado de cada um, diga se é entrada ou saída.

de dados. Ao lado de cada um, diga se é entrada ou saída. Treinamento em Algoritmo
Capítulo 2: Programando

Capítulo 2: Programando

CC

P

AA

r

PP

o

ÍÍ

g

TT

r

a

UU

m

LL

a

OO 22

n

d

o

Tópicos deste capítulo  Programando  O que é Necessário Para Escrever em Português Estruturado?
Tópicos deste capítulo
 Programando
 O que é Necessário Para Escrever em Português Estruturado?
 A Estrutura de Um Algoritmo
Objetivos
Ao final deste módulo, você estará apto a:
 Escrever um algoritmo na estrutura de um algoritmo estruturado
Capítulo 2: Programando

Capítulo 2: Programando

Programando

A partir de agora, utilizaremos uma linguagem conhecida como Português Estruturado para fazer nossos algoritmos.

O que é necessário para escrever em Português Estruturado?

Apenas um lápis e um papel serão necessários para escrever código em Português Estruturado. Você também pode utilizar o programa VisualG que executa seu código em Português Estruturado. O VisualG tem algumas funções que não serão utilizadas aqui. Para mais informações, visite a página do VisualG http://www.apoioinformatica.inf.br/visualg/objetivos.htm

A Estrutura De Um Algoritmo

A estrutura dos nossos algoritmos será do seguinte modo:

Algoritmo <Aqui inserimos o nome do algoritmo> var <Aqui declaramos as variáveis> inicio <Aqui iniciaremos nosso programa> fim algoritmo

<Aqui iniciaremos nosso programa> fim algoritmo Como você pode ver, temos uma área para a declaração

Como você pode ver, temos uma área para a declaração do nome do algoritmo, uma para a declaração das variáveis e uma para o código. Iremos começar a aprender como escrever nossos algoritmos.

Capítulo 3: Variáveis

Capítulo 3: Variáveis

CC

AA

PP

ÍÍ

V

TT

a

r

UU

i

LL

á

OO 33

r

e

i

s

Tópicos deste capítulo  Variáveis  Tipo de Variáveis  Lendo e Escrevendo Dados 
Tópicos deste capítulo
 Variáveis
 Tipo de Variáveis
 Lendo e Escrevendo Dados
 Vetores
Objetivos
Ao final deste módulo, você estará apto a:
 Definir uma variável
 Utilizar Variáveis
Capítulo 3: Variáveis

Capítulo 3: Variáveis

Variáveis

Variáveis são espaços em memória onde podemos alocar algum valor temporariamente. Como o nome diz, o valor de uma variável pode ser alterado. Para escrever o nome de uma vaiável, é necessário seguir algumas regras:

1 Os nomes das variáveis não podem ser iguais às palavras reservadas da linguagem. Algumas

linguagens de programação tem algumas palavras reservadas como begin e end. Elas são utilizadas internamente pela linguagem, então é melhor não utilizá-las. Cada linguagem tem as suas próprias palavras reservadas. Leia a documentação da sua linguagem preferida antes de começar a

programar.

2 – O primeiro caractere do nome da sua variável deve ser uma letra ou um “_” (underline ou sublinhado).

3 Os nomes das variáveis não podem ter espaço em branco.

Tipos de Variáveis

Tipo Descrição INTEIRO Utilizada para armazenar todos os números inteiros como 10, 30, -12, 325,
Tipo
Descrição
INTEIRO
Utilizada para armazenar todos os números inteiros como 10, 30, -12, 325, etc
REAL
São os números reais. Abrange os números Inteiros e os números com
separador decimal como 20, -30, 12.75, -225.12
CARACTERE
Utilizada para armazenar texto. É necessário utilizar aspas duplas para delimitar
o início e o fim de um texto.
LOGICO
Utiliza apenas dois valores: Verdadeiro e Falso

O tipo de uma variável define qual tipo de valor poderá ser armazenado nela. Usaremos quatro tipos de variáveis citadas abaixo.

As variáveis devem ser atribuídas sempre antes do inicio do programa, sempre depois da palavra “var”. Cada variável precisa de um nome e o seu tipo. O modo correto de declarar uma variável é mostrado abaixo.

Algoritmo “Variáveis” var

numero: INTEIRO inicio fim algoritmo

Capítulo 3: Variáveis

Capítulo 3: Variáveis

Acabamos de inicializar uma variável, mas a mesma ainda não tem valor algum. A seguir, um exemplo de uma variável recebendo um valor.

Algoritmo “variaveis” var numero: INTEIRO inicio numero <- 10 fim algoritmo

O código acima cria a variável “numero”, atribui o número 10 como valor para ela. Para atribuir valores a uma variável, é necessário utilizar o sinal “<-”.

Lendo e Escrevendo Dados Utilizaremos dois comandos para ler e escrever dados. O comando “leia” irá ler um dado para ser escrito ou para atribuir a uma variável. O comando “escreva” irá escrever texto, números ou valores de variáveis.

irá escrever texto, números ou valores de variáveis. algoritmo "variaveis" var numero: INTEIRO inicio

algoritmo "variaveis" var numero: INTEIRO inicio escreva("Escreva um número: ") leia(numero) escreva("O número que você digitou é:") escreva(numero) fimalgoritmo

Vetores

Traduzir vetor de um modo fácil seria dizer que ele é uma “variável que tem o valor de várias variáveis”. Dentro de um vetor é possível colocar vários valores diferentes.

Capítulo 3: Variáveis

Capítulo 3: Variáveis

algoritmo "vetores" var numeros: VETOR[1 inicio numeros[1] <- 10 numeros[2] <- 20 numeros[3] <- 30 numeros[4] <- 40 numeros[5] <- 50

5]

escreva(numeros[3])

fimalgoritmo

DE INTEIRO

Para utilizar um vetor é necessário que antes de atribuir valores aos seus índices (Um índice é um espaço dentro do vetor onde podemos armazenar dados).

é um espaço dentro do vetor onde podemos armazenar dados). Treinamento em Algoritmo Copyright  –
Capítulo 4: Macros

Capítulo 4: Macros

CC

AA

O

PP

p

ÍÍ

e

TT

r

UU

a

LL

d

o

OO 44

r

e

s

Tópicos deste capítulo  Operadores  Operador de Atribuição  Operadores Aritméticos  Operadores
Tópicos deste capítulo
 Operadores
 Operador de Atribuição
 Operadores Aritméticos
 Operadores Relacionais
 Operadores Lógicos
Objetivos
Ao final deste módulo, você estará apto a:
Capítulo 4: Macros

Capítulo 4: Macros

Operadores

Operador de Atribuição

Como já vimos anteriormente, para atribuir um valor a uma variável, é utilizado o sinal de “<-”. Você pode atribuir valores numéricos, Strings e booleanos às suas variáveis.

Operadores Aritméticos

Operadores Aritméticos servem para calcular números e valores em variáveis. Em Portugues Estruturado nós temos os seguintes Operadores Aritméticos:

Operador Sinal Adição + Subtração - Multiplicação * Divisão / Divisão Inteira \ Exponenciação ^
Operador
Sinal
Adição
+
Subtração
-
Multiplicação
*
Divisão
/
Divisão Inteira
\
Exponenciação
^
Resto da Divisão
%

Utilizaremos o sinal de % quando precisarmos ter o resto de uma divisão, diferente de / que retorna o resultado de um número dividido pelo outro.

Capítulo 4: Macros

Capítulo 4: Macros

Exemplo:

algoritmo "Operadores Aritméticos" var numero1, numero2: INTEIRO numero3: REAL inicio escreva("Digite o primeiro valor: ")

leia(numero1)

escreva("Digite o segundo valor: ")

leia(numero2)

numero3 <- numero1 + numero2

escreval(numero3)

numero3 <- numero1 - numero2

escreval(numero3)

numero3 <- numero1 * numero2

escreval(numero3)

numero3 <- numero1 / numero2

escreval(numero3)

numero3 <- numero1 \ numero2

escreval(numero3)

numero3 <- numero1 ^ numero2

escreval(numero3)

numero3 <- numero1 % numero2

escreval(numero3) numero3 <- numero1 % numero2 Treinamento em Algoritmo Copyright  – NSI Training
Capítulo 4: Macros

Capítulo 4: Macros

Operadores Relacionais

Os operadores relacionais são utilizados quando você precisa descobrir a relação entre um valor e outro. Os Operadores Relacionais são:

Operador Sinal Maior que > Menor que < Maior ou igual que >= Menor ou
Operador
Sinal
Maior que
>
Menor que
<
Maior ou igual que
>=
Menor ou igual que
<=
Igual
=
Diferente
<>

Os Operadores Relacionais retornam sempre um valor lógico, ou seja, verdadeiro ou falso. Podemos testar os operadores do seguinte modo:

Capítulo 4: Macros

Capítulo 4: Macros

algoritmo "Operadores Relacionais" var retorno: LOGICO inicio retorno <- 10 > 20 escreval(retorno) //Falso

retorno <- 10 < 20 escreval(retorno) //Verdadeiro

retorno <- 10 >= 20 escreval(retorno) //Falso

retorno <- 10 <= 20 escreval(retorno) //Verdadeiro

retorno <- 10 = 20 escreval(retorno) //Falso

retorno <- 10 <> 20 escreval(retorno) //Verdadeiro

fimalgoritmo

<> 20 escreval(retorno) //Verdadeiro fimalgoritmo Treinamento em Algoritmo Copyright  – NSI Training
Capítulo 4: Macros

Capítulo 4: Macros

Operadores Lógicos

Os operadores lógicos servem para se utilizar várias operações relacionais em uma mesma linha.

Operador

Significado

E

Retorna Verdadeiro se todos os testes forem verdadeiros

Ou

Retorna Verdadeiro se um dos testes for verdadeiro

Nao

Retorna o inverso de um lógico. Se for Verdadeiro, retorna Falso. Se for falso, retorna Verdadeiro.

Os Operadores Lógicos “E” e “Ou” seguem a lógica da tabela verdade, descrita abaixo: A
Os Operadores Lógicos “E” e “Ou” seguem a lógica da tabela verdade, descrita abaixo:
A
B
A E B
Verdadeiro
Verdadeiro
Verdadeiro
Verdadeiro
Falso
Falso
Falso
Verdadeiro
Falso
Falso
Falso
Falso

A

B

A Ou B

Verdadeiro

Verdadeiro

Verdadeiro

Verdadeiro

Falso

Verdadeiro

Falso

Verdadeiro

Verdadeiro

Falso

Falso

Falso

Capítulo 4: Macros

Capítulo 4: Macros

A

Não A

Verdadeiro

Falso

Falso

Verdadeiro

 Falso  Falso  Verdadeiro Treinamento em Algoritmo Copyright  – NSI Training
Capítulo 5: Funções

Capítulo 5: Funções

CC

AA

PP

ÍÍ

TT

UU

LL

OO 55

Funções

Tópicos deste capítulo

Tópicos deste capítulo

Funções

Objetivos Ao final deste módulo, você estará apto a:  Definir funções  Utilizar funções
Objetivos
Ao final deste módulo, você estará apto a:
 Definir funções
 Utilizar funções
Capítulo 5: Funções

Capítulo 5: Funções

Funções

Algumas vezes será necessário que você execute uma mesma rotina várias vezes. Para que você não precise reescrever o mesmo código várias vezes, existem as funções. Uma função permite que você passe parâmetros para ela. A função irá realizar o bloco de código definido nela com ou sem os parâmetros passados, mas tome cuidado. Caso você defina uma função que receba parâmetros, será necessário passar os parâmetros para a mesma. Exemplo:

algoritmo "Funcoes" var

num1,num2,resultado:REAL

funcao somar(valor1,valor2:REAL):REAL var

total:REAL inicio total <- valor1 + valor2 retorne total fim funcao

inicio escreva("Digite o primeiro número: ")

f

leia(num1)

escreva("Digite o segundo número: ")

leia(num2)

resultado <- somar(num1,num2) escreva("A soma das variáveis é ", resultado) l

escreva("A soma das variáveis é ", resultado) l No exemplo anterior nós temos a função “somar”

No exemplo anterior nós temos a função “somar” que recebe dois números. Ela soma esses dois números e retorna o resultado da soma. O comando “retorne” utilizado no final da função retorna a soma das duas variáveis que pode ser utilizado do lado de fora da função como mostra o exemplo acima.

Capítulo 6: Estruturas de Controle

Capítulo 6: Estruturas de Controle

CC

AA

PP

ÍÍ

TT

UU

LL

OO 66

E

s

t

r

u

t

u

r

a

s

d

e

C

o

n

t

r

o

l

e

Tópicos deste capítulo

Tópicos deste capítulo

Estrutura de Controle

Objetivos Ao final deste módulo, você estará apto a:  Utilizar uma estrutura de controle
Objetivos
Ao final deste módulo, você estará apto a:
 Utilizar uma estrutura de controle para que seu algoritmo tome decisões
Capítulo 6: Estruturas de Controle

Capítulo 6: Estruturas de Controle

Estrutura de Controle

As estruturas de controles servem para, como o nome diz, controlar a execução do programa. Imagine que no sistema de uma loja virtual apenas maiores de 18 anos de idade podem realizar compras. Para isso é necessário checar se a idade do comprador é maior ou igual a 18 anos. Utilizaremos a estrutura de controle SE que serve para executar determinado código caso uma expressão retorne true. Exemplo:

algoritmo "SE" var idade:INTEIRO inicio idade <- 20 SE idade >= 18 ENTAO escreva("O usuário pode comprar") FIM SE fim algoritmo

usuário pode comprar") FIM SE fim algoritmo Nesse exemplo será testado se a idade do usuário

Nesse exemplo será testado se a idade do usuário é igual ou maior que 18 anos. Se o teste retornar Verdadeiro, será executado o código. Esse exemplo é bastante limitado levando em consideração que nada acontecerá se o usuário tiver idade menor que 18 anos. Sempre que houver a necessidade de que um bloco de código seja executado se a expressão retornar Falso, basta adicionar a o bloco do SENAO após o código do SE.

algoritmo "SE" var idade:INTEIRO inicio idade <- 20 SE idade >= 18 ENTAO escreva("O usuário pode comprar") SENAO escreva(“O usuário não pode comprar”) FIM SE fim algoritmo

Cada linguagem de programação tem suas estruturas de controle. Leia a documentação para a sua linguagem preferida sobre suas estruturas de controle e utilize a melhor para cada caso.

E

s

t

r

u

t

u

r

a

s

CC

d

AA

e

PP

R

ÍÍ

e

TT

p

UU

e

LL

t

i

OO 77

ç

ã

o

Tópicos deste capítulo  Estruturas de Repetição  Enquanto Faça  Para Faça  Repita
Tópicos deste capítulo
 Estruturas de Repetição
 Enquanto
Faça
 Para
Faça
 Repita
Até
Objetivos
Ao final deste módulo, você estará apto a:
Utilizar estruturas de repetição para executar o mesmo código várias vezes

Estruturas de Repetição

As estruturas de Repetição são utilizadas quando você precisa repetir um código várias vezes enquanto uma determinada condição não for satisfeita. Vamos a elas.

Enquanto

Faca

O Enquanto

Faca irá executar um bloco de código até que sua condição seja satisfeita. Veja o

exemplo:

algoritmo "Enquanto" var num:INTEIRO inicio num <- 10 ENQUANTO num < 20 FACA escreva("O número é menor que 20") FIM ENQUANTO fim algoritmo

número é menor que 20") FIM ENQUANTO fim algoritmo Acima temos um problema. O valor de

Acima temos um problema. O valor de num nunca será igual ou maior que 20, então o programa entrará no que chamamos de loop infinito. Ele entrará nesse bloco de código e executará infinitamente, geralmente travando a o seu programa. Para que isso não aconteça, é necessário que você faça com que a variável num receba um valor que não satisfaça a condição do while. Um exemplo simples seria incrementar a variável a cada loop.

algoritmo "Enquanto" var num:INTEIRO inicio num <- 10 ENQUANTO num < 20 FACA escreva("O número é menor que 20") num <- num + 1 FIM ENQUANTO

Pronto. Agora o Enquanto executará o código um número limitado de vezes e sairá logo assim que a condição não mais o satisfizer.

Para

Faca

O Para

Faca funciona do mesmo modo que o Enquanto

Faca, mas utilizando ele fica mais

fácil não esquecer declarar uma variável ou incrementá-la. O Para sintaxe mais definida.

Faca apresenta uma

algoritmo "Para" var num:INTEIRO inicio num <- 0 PARA num DE 1 ATE 10 FACA escreva("A variável agora vale: ") escreval(num) FIM PARA fim algoritmo

Podemos ver que o Para “DE 1 ATE 10”, o Para

vez que a variável receber esse valor, o código entre “PARA

Faca recebe uma variável inteira para poder incrementar. Na parte

”

Faca irá dar um valor de 1 até 10, sempre acrescentando 1 e para cada

e “FIMPARA” será executado.

Repita

Ate

O Repita

Ate é parecido com o Enquanto

Faca, porém ao invés de ele fazer o teste antes da

execução do bloco, seu teste é feito apenas depois.

algoritmo "Para" var num:INTEIRO inicio num <- 10 REPITA escreval("O valor de num é menor que 10") num <- num + 1 ATE num > 10 fim algoritmo

A grande diferença entre o Enquanto

será executado pelo menos uma vez, mesmo se a condição não for satisfeita. Faça o teste

como no código acima.

Faca e o Repita

Ate é que no Repita

Ate o código

acima. Faca e o Repita Ate é que no Repita Ate o código Treinamento em Algoritmo

VBA com Excel

VBA com Excel Treinamento em Algoritmo Copyright  – NSI Training Tecnologia 5
VBA com EXCEL Índice C C C C A P Í T U L O

VBA com EXCEL

Índice

C

C

C

C

A P Í T U L O 11 Introdução Macros Gravando uma Macro Executando a Macro Atribuindo Macros a Botões

Editando uma Macro Excluindo uma Macro

A

Macros a Botões Editando uma Macro Excluindo uma Macro A Pasta de Trabalho Pessoal de Macros

Pasta de Trabalho Pessoal de Macros

T U L O 22

A P Í

Explorando o Visual Basic Editor VBE

Janela de Código

A

O

A

O

As Ferramentas de Depuração Definindo Padrões das Janelas de Códigos e Módulos

Project Explorer (VBAProject)

Janela de Propriedades

Pesquisador de Objetos

A P Í T U L O 33 Trabalhando com Módulos Módulos Padrão Módulos de Classe Como Criar um Módulo Salvando Módulos Exportando Modulos Trabalhando com Procedimentos Procedimento SUB Procedimento FUNCTION

A P Í T U L O 44 Trabalhando com Variáveis

1

2

3

3

5

6

9

11

11

15

16

16

16

17

17

17

18

20

21

21

21

22

23

23

24

25

26

29

30

Treinamento em MS Excel 2013 com VBA NSI Training

  Tipos de Dados   30 Variáveis 32 Declarando uma Variável 32 Constantes 34
 

Tipos de Dados

 

30

Variáveis

32

Declarando uma Variável

32

Constantes

34

Trabalhando com Matrizes

35

Trabalhando com Operadores

36

Operadores Lógicos

36

Operadores Aritméticos

36

Operadores de Comparação

38

Operadores de Concatenação

38

C

A P Í T U L O 55

40

Funções do VBA

41

Funções de Manipulação de Strings

41

 

Funções de Planilha Caixa de Mensagem (MsgBox) Caixa de Entrada (InputBox) Os Principais Objetos do Excel 2013 O que são Objetos, Propriedades, Métodos e Eventos A Hierarquia de Objetos no Excel 2013

Objetos do Excel 2013 O que são Objetos, Propriedades, Métodos e Eventos A Hierarquia de Objetos

46

47

48

50

50

51

O

objeto Application

   

52

 

Propriedades

52

Métodos

52

 

O

objeto WorkBooks

 

53

 

Propriedades

53

Métodos

53

 

O

objeto WorkSheet

54

 

Propriedades

54

Métodos

54

 

O

objeto Range

 

55

 

Propriedades

55

Métodos

56

C

A P Í T U L O 66

57

Trabalhando com Controles de Fluxo

58

 

If

Then

Else

 

58

Select Case

End

Select

58

Treinamento em MS Excel 2013 com VBA NSI Training

Trabalhando com Loops para Repetir o Código C C C Do For…Next For Each…Next With

Trabalhando com Loops para Repetir o Código

C

C

C

Do

For…Next

For Each…Next

With

Loop

End

With

A P Í T U L O 77 Depuração de Erros Adicionando Inspeção de Variáveis Inspeção de Variáveis Rápida Janela de Verificação Imediata Depurando o Código do seu Programa Passo a Passo Tratamento de Erros O que é tratamento de erros A Instrução “On Error”

A P Í

é tratamento de erros A Instrução “On Error” A P Í T U L O 8

T U L O 88

Trabalhando com Controles no Excel Controles da Caixa de Ferramentas

A P Í T U L O 99 Trabalhando com Formulários no VBA

Criando Formulários Construindo o Código do Formulário Exercício 6

59

59

60

60

61

62

63

63

63

64

64

65

65

65

66

67

68

70

71

71

73

75

Treinamento em MS Excel 2013 com VBA NSI Training

C A P Í T U L O 1 1 I I n n t

C A P Í T U L O 11

IInnttrroodduuççããoo

Tópicos deste capítulo  Introdução  Macros  Gravando Macros  Executando a Macro 
Tópicos deste capítulo
 Introdução
 Macros
 Gravando Macros
 Executando a Macro
 Atribuindo Macros a botões
 Editando uma Macro
 Excluindo uma Macro
 A pasta de trabalho pessoal de Macros
Introdução Este curso tem o objetivo de ensinar ao usuário a manipular a linguagem de

Introdução

Este curso tem o objetivo de ensinar ao usuário a manipular a linguagem de

programação Visual Basic for Applications VBA, no ambiente do Microsoft Excel

2013.

O VBA é uma linguagem de programação que possibilita adicionar, a todos os programas da linha Office, recursos personalizados, fazendo com que os programas possam atender a situações específicas de sua rotina de trabalho.

Você poderá utilizar o VBA para criar novas funcionalidades ao Excel 2013, como formulários personalizados, botões para automatizar tarefas, criar novas funções para utilizá-las em sua planilha.

criar novas funções para utilizá-las em sua planilha. Esta apostila ensinará, passo a passo, como dominar

Esta apostila ensinará, passo a passo, como dominar todos os conceitos fundamentais para você poder aumentar, e muito, a sua produtividade no trabalho, conseguindo utilizar o Excel 2013 em toda a sua plenitude.

Para utilizar bem o VBA no Excel 2013, você não precisa ser um programador experiente, mas deve conhecer as estruturas básicas de lógica de programação, como operadores aritméticos, operadores de comparação, estruturas de desvio condicional e controles de repetição de código. Também é necessário, para realmente poder aproveitar toda a potencialidade da dobradinha VBA + Excel 2013, que você deve domine os conhecimentos de nosso curso de Excel 2013 avançado. Quanto mais você conhece os recursos do Excel, melhor e mais fácil de serem criados, serão os seus procedimentos em VBA.

Em geral, para facilitar a criação de um procedimento em VBA, utilizamos o gravador de macros para gravar os comandos desejados na solução do problema e, em seguida, editamos o código-fonte gravado e o adaptamos, através do VBA, para atender a um caso específico, inserindo, por exemplo, variáveis, caixas de diálogo, etc. Por isto, vamos começar esta apostila pelo assunto Macro.

Macros As macros são rotinas criadas para automatizar uma determinada sequência de ações, reduzindo assim

Macros

As macros são rotinas criadas para automatizar uma determinada sequência de ações, reduzindo assim o tempo gasto para repetir estas ações cotidianamente. No Excel 2013, as macros podem ser gravadas ou escritas por você. Mesmo quando gravadas, elas são convertidas para a linguagem de programação Visual Basic for Applications, que chamamos resumidamente de VBA.

Você também pode escrever o código de uma determinada macro diretamente, usando o Editor do Visual Basic (VBE). Neste caso, torna-se necessário, evidentemente, que você já esteja familiarizado com os comandos da linguagem.

Gravando uma Macro

No Excel 2013, podemos gravar uma Macro através da Guia Exibição, clicando no botão Macros, que fica do lado direito da guia. Porem é bem mais fácil trabalhar com a guia Desenvolvedor, a qual possui várias funcionalidades para facilitar nosso trabalho.

Para exibir a guia Desenvolvedor, execute os seguintes passos: 1. Dê um clique na Guia
Para exibir a guia Desenvolvedor, execute os seguintes passos:
1. Dê um clique na Guia Arquivo.
2. A seguir, utilize o botão Opções.

3. Na lista de categorias existente na lateral esquerda da tela, dê um clique em Personalizar faixa de Opções.

4. A seguir, habilite a opção Desenvolvedor , e clique em OK. Com a guia

4. A seguir, habilite a opção Desenvolvedor , e clique em OK.

Com a guia desenvolvedor habilitada, siga os passos abaixo, para começar a gravar a macro:

1. Na guia Desenvolvedor utilize o botão Gravar Macro.

2. Forneça um nome para a macro.

3. Forneça uma descrição, a qual servirá para você descrever, resumidamente, o finalidade da macro. Isto irá facilitar, no futuro, a identificação da utilidade desta macro, por qualquer usuário que esteja utilizando as macros que você gravou.

4. Para executar a macro através de um atalho de teclado, você poderá utilizar o campo Tecla de atalho, definindo a combinação de teclas que ativará a macro.

5. Após definir as descrições iniciais, clique em OK para iniciar a gravação.

iniciais, clique em OK para iniciar a gravação. OBSERVAÇÕES:  Na caixa Nome da macro ,

OBSERVAÇÕES:

Na caixa Nome da macro, dê um nome para a macro que você está criando. São aceitos até 64 caracteres. Não é permitido espaços e não se aconselha o uso de acentos (embora permitido). O nome deve começar por uma letra e não pode ser igual ao de uma macro já existente no sistema.

Na caixa Tecla de Atalho, Vale lembrar que, caso a combinação gerada seja um dos atalhos default do Excel, a mesma passará a executar a macro, anulando o atalho do Excel. Como uma segunda opção, pode-se digitar uma letra em maiúscula. Assim, será gravado Ctrl +Shift + LETRA. Ou ainda, deixar a macro sem uma tecla de atalho.

Na caixa Armazenar Macro em, clique na seta à direita e escolha onde você deseja armazenar a macro:

- Pasta de trabalho pessoal de macros: Use esta opção se você desejar que a macro esteja disponível para qualquer arquivo do Excel, quando você logar com seu usuário, no computador que foi utilizado para gravar a macro.

O código-fonte da macro é salvo no num arquivo denominado Pessoal.xlsb , que é aberto

O código-fonte da macro é salvo no num arquivo denominado Pessoal.xlsb, que

é aberto automaticamente, de forma oculta, toda vez que você iniciar o Excel.

Esta pasta de trabalho: O código-fonte da macro é salvo dentro próprio arquivo onde ela foi originada. Esta é a opção mais usual quando as ações da macro dependem da planilha em questão ou não fazem sentido serem executadas em outra planilha qualquer. Dessa forma, se você desejar que outra pessoa possa executar sua macro, bastará copiar seu arquivo de planilha normalmente.

-

Nova pasta de trabalho: Caso você prefira que o Excel crie um novo arquivo vazio para salvar exclusivamente o código da macro, selecione esta opção. Deste modo, este novo arquivo criado deverá ser transportado e aberto junto com o arquivo da planilha desejada para que a macro funcione.

6.

Agora, preste atenção, pois tudo o que você fizer a partir deste momento no Excel estará sendo gravado na macro. Execute, no Excel, os comandos desejados para salvar na macro.

7.

Ao final, clique no botão Parar Gravação, ele estará localizado na guia desenvolvedor, no mesmo local onde antes estava o botão Gravar Macro.

Executando a Macro

 
Existem várias formas de se executar uma macro, as quais descrevemos abaixo: 1. Podemos executar

Existem várias formas de se executar uma macro, as quais descrevemos abaixo:

1. Podemos executar uma macro rapidamente pressionando as teclas de

atalho que definimos ao criar a macro;

2. Podemos executá-las através da Guia Desenvolvedor, a opção Macro.

através da Guia Desenvolvedor , a opção Macro . Basta Selecionar a macro desejada e, em

Basta Selecionar a macro desejada e, em seguida, clique no botão Executar

3. Por fim, pode-se ainda atribuir a macro a um botão na planilha ou em

3.

Por fim, pode-se ainda atribuir a macro a um botão na planilha ou em alguma Guia do Excel, conforme ensinamos a seguir.

Atribuindo Macros a Botões

Podemos criar macros no Excel e atribuir as mesmas a botões - posicionados no interior da planilha ou nas barras de ferramentas do Excel. Para tal, execute os seguintes passos.

Botões na Planilha

1. Na guia Desenvolvedor, clique no botão Inserir. Será exibida a barra logo abaixo.

no botão Inserir . Será exibida a barra logo abaixo. 2. Selecione, na seção Controles de

2. Selecione, na seção Controles de Formulário, a ferramenta botão e , dentro da planilha, clique na posição em que você deseja criar o botão de comando. Será desenhado um botão, no tamanho padrão, e imediatamente será exibida a caixa de diálogo abaixo.

e imediatamente será exibida a caixa de diálogo abaixo. 3. Selecione a macro que você deseja

3. Selecione a macro que você deseja atribuir ao botão criado e, em seguida, clique sobre o botão OK.

4. Edite o nome do botão clicando dentro do mesmo.

NOTA : A partir de agora, ao posicionar o ponteiro do mouse sobre o botão

NOTA: A partir de agora, ao posicionar o ponteiro do mouse sobre o botão criado, você irá reparar que o mesmo se transforma para o formato de uma mão e, ao clicar, sua macro será executada automaticamente. Para reeditar o botão ou atribuir uma outra macro, clique com o botão direito do mouse sobre o mesmo.

Botões na Barra de Ferramentas de Acesso Rápido

Quando uma macro é armazenada na Pasta de trabalho pessoal de macros, convém criar o botão para a mesma, em uma das barras de ferramentas do Excel, já que sua ação independe do arquivo em aberto.

Antes de inserirmos o botão, é necessário saber que o Excel 2013 abandonou o conceito de menus, por isso o botão a ser criado será, na realidade, inserido na Barra de Ferramentas de Acesso Rápido, que se localiza a direita do botão do Microsoft Office. Para efetuar esta tarefa, devemos efetuar os procedimentos abaixo:

1. Na Barra de Ferramentas de Acesso Rápido, clique no botão Mais Comandos.

de Acesso Rápido , clique no botão Mais Comandos. 2. Escolha a opção Mais comandos. 3.

2. Escolha a opção Mais comandos.

3. Clique em Barra de Ferramentas de Acesso Rápido.

4. Selecione a macro para qual você deseja criar o botão e clique em Adicionar.
4. Selecione a macro para qual você deseja criar o botão e clique em Adicionar.
4. Selecione a macro para qual você deseja criar o botão e clique em Adicionar.

5. Você pode utilizar o botão modificar para alterar o ícone do botão a ser criado e adicionar um nome de exibição para esta macro.

6. No final, clique em OK. NOTA: Para excluir o botão criado ou alterar qualquer
6. No final, clique em OK. NOTA: Para excluir o botão criado ou alterar qualquer

6. No final, clique em OK.

NOTA: Para excluir o botão criado ou alterar qualquer uma das opções descritas acima, será necessário abrir novamente a janela Personalize a Barra de Ferramentas de Acesso Rápido. Para excluir o botão, por exemplo, basta seleciona-lo e clicar em Remover. A exclusão do botão não irá apagar a macro.

Remover. A exclusão do botão não irá apagar a macro. Editando uma Macro Editar uma macro

Editando uma Macro

Editar uma macro significa modificá-la, isto é, acrescentar ou até mesmo excluir comandos que constam nela. Esta tarefa somente pode ser efetuada através do editor do Visual Basic, o chamado VBE. Você pode acessar o VBE de duas maneiras:

A primeira é através da Guia Desenvolvedor, clicando no botão Visual Basic, conforme a figura abaixo:

clicando no botão Visual Basic , conforme a figura abaixo: Ao clicar botão, você será levado

Ao clicar botão, você será levado para o ambiente de programação do Visual Basic for Application, também chamado de VBE (Visual Basic Editor).

A outra forma de ir para o VBE é através do botão Macros, conforme os

A outra forma de ir para o VBE é através do botão Macros, conforme os passos

abaixo:

1. Na guia Desenvolvedor, selecione a opção Macros. Será exibida a caixa de diálogo abaixo.

opção Macros . Será exibida a caixa de diálogo abaixo. 2. Selecione o nome da macro
opção Macros . Será exibida a caixa de diálogo abaixo. 2. Selecione o nome da macro

2. Selecione o nome da macro que você deseja editar e clique sobre o botão Editar. O editor do Visual Basic (VBE) se abre, com o módulo que contém a macro selecionada, para que você, através do VBA, possa editar a macro, como estudaremos adiante.

Excluindo uma Macro Para Excluir uma Macro, também possuímos duas opções: A primeira é selecionar,

Excluindo uma Macro

Para Excluir uma Macro, também possuímos duas opções:

A primeira é selecionar, dentro do VBE, todo o código da macro, a qual você

deseja excluir, e pressionar a tecla DELETE.

A segunda é através do botão Macro, conforme abaixo:

1. Na guia Desenvolvedor, selecione a opção Macros. Será exibida a caixa de diálogo abaixo.

opção Macros . Será exibida a caixa de diálogo abaixo. 2. Selecione o nome da macro

2. Selecione o nome da macro que você deseja excluir e clique sobre o botão Excluir.

3. Uma mensagem aparecerá na tela, perguntando se você realmente deseja excluir a macro. Clique no botão Sim, para excluir definitivamente; Clique no botão Não, para cancelar a operação.

A Pasta de Trabalho Pessoal de Macros

A Pasta de Trabalho Pessoal de Macros é, em princípio, como qualquer outra

pasta de trabalho (arquivo) dentro do Microsoft Excel. Porém ela é carregada automaticamente quando entramos no aplicativo, de forma oculta.

Ela é criada quando você grava sua primeira macro, direcionando-a para “Pasta de trabalho pessoal de macros” e esta pasta, normalmente, contém apenas uma planilha em branco e módulos (rotinas) contendo macros. Você pode inserir outras planilhas se desejar embora isso não seja aconselhável, já que a função desta pasta é servir apenas como uma biblioteca local de macros.

Você deve armazenar uma macro na pasta pessoal de macros, quando desejar que a mesma

Você deve armazenar uma macro na pasta pessoal de macros, quando desejar que a mesma possa ser usada a partir de qualquer outro arquivo (planilha) do Excel, que seja aberto pelo seu usuário. Caso você não utilize perfil móvel em sua rede, a macro também só funcionará, com seu usuário, no micro onde você a gravou.

Uma vez armazenada sua macro na pasta de trabalho pessoal de macros, e desejando editá-la ou excluí-la, você perceberá que, seguindo os passos descritos anteriormente, será apresentada a seguinte mensagem de erro:

será apresentada a seguinte mensagem de erro: Esta mensagem se deve ao fato do arquivo Pessoal.xlsb

Esta mensagem se deve ao fato do arquivo Pessoal.xlsb ser aberto de forma oculta, ou seja, você não o vê enquanto trabalha em seu arquivo de planilha normal, dentro do Excel.

Para visualizar a pasta pessoal de macros e, consequentemente, poder alterar ou excluir as macros
Para visualizar a pasta pessoal de macros e, consequentemente, poder alterar
ou excluir as macros que estão nessa pasta, execute os seguinte comando:
1. Na guia Exibição, clique na opção Botão Reexibir (Este botão só está disponível
quando existe uma pasta de trabalho do Excel oculta).

2. Na caixa de diálogo Reexibir que será exibida, selecione a opção Pessoal.xlsb e clique sobre o botão OK.

a opção Pessoal.xlsb e clique sobre o botão OK. Treinamento em MS Excel 2013 com VBA
A pasta Pessoal.xlsb se abre, contendo apenas uma planilha normal, porém seu módulo contém todas

A pasta Pessoal.xlsb se abre, contendo apenas uma planilha normal, porém seu módulo contém todas as macros que foram gravadas nesta pasta.

Para visualizar o módulo, na guia Desenvolvedor, selecione a opção Macros. Selecione agora o nome de qualquer uma das macros que você salvou na pasta pessoal de macros e clique no botão Editar. O VBE se abre mostrando o código- fonte da macro selecionada.

Ainda com o arquivo Pessoal.xls visível, para excluir qualquer uma das macros armazenadas no mesmo, na guia Desenvolvedor, selecione a opção Macros. Selecione o nome da macro indesejada e clique no botão Excluir.

NOTA:

Após editar ou excluir a macro desejada no arquivo Pessoal.xlsb deve-se novamente ocultá-lo. Caso contrário, da próxima vez que o Microsoft Excel for iniciado, a pasta Pessoal será aberta de forma visível e acabará sendo sobrescrita por usuários desavisados. Isso acabará gerando “confusões” entre diferentes usuários de seu micro. Para tanto, estando ainda com o arquivo Pessoal.xlsb visível, na guia Exibição, clique na opção Ocultar. Em seguida, saia do Excel e inicie-o novamente.

Ocultar. Em seguida, saia do Excel e inicie-o novamente .  Nas versões anteriores do Excel

Nas versões anteriores do Excel as macros são salvas juntamente com as planilhas na mesma pasta de trabalho .xls, afim de melhorar a segurança e transparência na utilização de macros, o Excel 2013 adota um formato diferente para salvar macros, o formato padrão .xlsx somente é utilizado para pastas de trabalho com planilhas comuns e o formato .xlsm é o formato utilizado para salvar pastas de trabalho que possuem macros.

EXERCÍCIOS DE FIXAÇÃO Exercício 1 Observe a planilha abaixo: Utilizando o gravador de macros e

EXERCÍCIOS DE FIXAÇÃO

Exercício 1

Observe a planilha abaixo:

DE FIXAÇÃO Exercício 1 Observe a planilha abaixo: Utilizando o gravador de macros e os ícones

Utilizando o gravador de macros e os ícones da opção Inserir da Guia Desenvolvedor, construa macros para:

1.1. Gerar subtotais na planilha por "Vendedor", calculando a soma do valor total vendido por cada um. Associar a macro a um botão de comando acima da planilha.

1.2. Remover os subtotais gerados pela macro anterior e retornar a classificação da planilha por ordem crescente de Data / Item / Vendedor. Associar a macro a um segundo botão de comando na planilha.

1.3. Ativar / Desativar o AutoFiltro na lista apresentada. Associar a macro a uma caixa de seleção acima da planilha.

1.4. Classificar as vendas por:

1.4.1.

Data / Item / Vendedor

1.4.2.

Vendedor / Item / Data

1.4.3.

Val Total / Data / Item

1.5. Associar cada uma das 3 macros gravadas a um botão de opção envolvendo-os com uma caixa de grupo.

C A P Í T U L O 2 2 E E x x p

C A P Í T U L O 22

EExxpplloorraannddoo oo VViissuuaall BBaassiicc EEddiittoorr -- VVBBEE

Tópicos deste capítulo

A janela de código

O Project Explorer

A janela de propriedades

O pesquisador de objetos

As ferramentas de depuração

Definindo padrões das janelas de códigos e módulos

 Definindo padrões das janelas de códigos e módulos Treinamento em MS Excel 2013 com VBA
Explorando o Visual Basic Editor – VBE Como já foi citado anteriormente o Editor do

Explorando o Visual Basic Editor VBE

Como já foi citado anteriormente o Editor do Visual Basic é chamado, normalmente, pelo acrônimo VBE. O VBE é o ambiente onde você pode editar macros já gravadas e criar novas macros, funções e até formulários personalizados, através da linguagem de programação Visual Basic for Applications, ou VBA. Entre os recursos mais importantes do VBE podemos citar o Project Explorer, a Janela propriedades, o Pesquisador de Objetos, a Janela de Código e as Ferramentas de Depuração.

A Janela de Código

É nesta janela que você escreve, exibe e edita o código do Visual Basic. Cada módulo é aberto em uma janela de código separada.

Cada módulo é aberto em uma janela de código separada. A Janela de Código e os

A Janela de Código e os módulos serão vistos com mais detalhes no próximo capítulo.

serão vistos com mais detalhes no próximo capítulo. O Project Explorer (VBAProject) A janela do Project

O Project Explorer (VBAProject)

A janela do Project Explorer exibe uma lista, em hierarquia, de todos os projetos carregados e os itens incluídos em cada um. Porém, o Project Explorer é somente uma ferramenta de navegação e gerenciamento. Logo, você não pode criar um aplicativo a partir dele. Caso esta janela não esteja visível, clique em Exibir / Project Explorer (ou tecle CTRL + R)

A Janela de Propriedades Através desta janela são listadas todas as propriedades do objeto selecionado,
A Janela de Propriedades Através desta janela são listadas todas as propriedades do objeto selecionado,

A Janela de Propriedades

Através desta janela são listadas todas as propriedades do objeto selecionado, e você pode alterá-las sempre que necessário. Quando selecionamos vários controles, esta janela mostra apenas as propriedades comuns entre os controles selecionados. Caso esta janela não esteja visível, clique em Exibir / Janela ‘Propriedades’ (ou tecle F4)

clique em Exibir / Janela ‘Propriedades’ (ou tecle F4) O Pesquisador de Objetos O Pesquisador de

O Pesquisador de Objetos

O Pesquisador de Objetos exibe informações sobre objetos, propriedades, métodos e constantes no projeto atual e em bibliotecas de objetos referenciados. Você deve utilizar o Pesquisador de objetos para pesquisar um elemento específico, para visualizar suas definições, para obter uma ajuda etc. Para acessá-lo, clique sobre a opção Pesquisador de objeto, no menu Exibir, no Visual Basic Editor.

As Ferramentas de Depuração

Os botões desta barra são atalhos para alguns comandos que você também encontra nos menus. Estes botões são usados na depuração de códigos, ou seja, para encontrar erros de lógica no seu código. Cada um deles realiza uma determinada ação, entre elas estão: Executar Sub/UserForm, Interromper, Redefinir, etc.

estão: Executar Sub/UserForm, Interromper, Redefinir, etc. A parte de depuração de código será vista, em nosso

A parte de depuração de código será vista, em nosso curso, mais adiante.

Definindo Padrões das Janelas de Códigos e Módulos Através do menu Ferramentas , no Visual

Definindo Padrões das Janelas de Códigos e Módulos

Através do menu Ferramentas, no Visual Basic Editor, podemos acessar o item Opções. Através da caixa de diálogo que aparecerá na tela, você poderá modificar Vários padrões das janelas de códigos e módulos. Veja abaixo:

padrões das janelas de códigos e módulos. Veja abaixo: Através da guia Editor , você pode

Através da guia Editor, você pode modificar as configurações do código e da janela, como mostrar informações rápidas automáticas, autolistar as propriedades e métodos de cada objeto, etc

Na guia Formato do Editor, você pode alterar os padrões de formatação de fonte e cores de código, personalizando o ambiente. Normalmente não alteramos os padrões desta guia, a não ser em casos bem específicos.

Com a guia Geral, você pode alterar as configurações outras pções de personalização, dentro das quais destacamos a “Configurações da grade do formulário”, que é muito útil quando queremos fazer ajustes mais finos, nos controles dos formulários.

Através da guia Encaixe, você pode alterar a maneira como as diversas janelas de trabalho podem ser fixadas dentro do ambiente do VBE.

A seguir vamos destacar algumas opções interessantes da guia Editor, as quais podem interferir na sua produtividade ao escrever código em VBA, caso sejam desabilitadas:

• Na guia Editor , a opção Autolistar Membros . Se esta opção estiver marcada,

Na guia Editor, a opção Autolistar Membros. Se esta opção estiver marcada, será

oferecida uma lista de objetos, propriedades e métodos relevantes. É simples: ao digitar o nome de um objeto, o Excel automaticamente apresentará uma lista de objetos, propriedades e métodos que poderiam seguir ao nome do objeto. Se você desejar inserir um item desta lista, basta clicar sobre ele.

desejar inserir um item desta lista, basta clicar sobre ele. • Outra opção bem interessante, também
desejar inserir um item desta lista, basta clicar sobre ele. • Outra opção bem interessante, também

Outra opção bem interessante, também da guia Editor, são Informações Rápidas

Automaticas. Se esta opção estiver marcada, serão oferecidos a você, conforme for

escrevendo, os códigos, informações sobre a sintaxe e também argumentos que você precisa utilizar. Veja um exemplo:

Na guia Editor, também interessante, é Dicas Automáticas de Dados. Se esta opção

estiver marcada, será fornecido a você o valor de uma variável ou expressão enquanto o código estiver no modo Interrupção. Para visualizar estes valores, selecione a variável ou expressão que deseja verificar e mova o mouse sobre ela para exibir o valor

atual.

e mova o mouse sobre ela para exibir o valor atual. • A opção “Requerer declaração

• A opção “Requerer declaração de variável”, da Guia Editor, também é muito útil, e será comentada na parte de depuração de código, mais adiante nesta apostila.

C A P Í T U L O 3 3 T T r r a

C A P Í T U L O 33

TTrraabbaallhhaannddoo ccoomm mmóódduullooss ee pprroocceeddiimmeennttooss

Tópicos deste capítulo  Trabalhando com módulos  Módulos padrão  Módulos classe  Como
Tópicos deste capítulo
 Trabalhando com módulos
 Módulos padrão
 Módulos classe
 Como criar um módulo
 Salvando módulos
 Exportando módulos
 Procedimento SUB
 Procedimentos Function
Trabalhando com Módulos Para programar com o Excel usando o Visual Basic for Applications, é

Trabalhando com Módulos

Para programar com o Excel usando o Visual Basic for Applications, é necessário compreender inicialmente os módulos, o que são e para que servem. Vamos, então, dar uma visão geral sobre módulos.

Os módulos são espaços onde ficarão declarações e procedimentos do VBA. Cada módulo pode conter diversos procedimentos, do tipo SUB e FUNCTION, os quais serão vistos em nosso curso, ou PROPERTY, cujo estudo foge dos objetivos deste curso de VBA.

Quando usamos o gravador de macros no Excel, o mesmo tende a armazenar todas as macros gravadas, dentro de uma mesma seção do Excel 2013, em um mesmo módulo. Entretanto, se fecharmos o arquivo em uso e o reabrirmos, o gravador de macros irá gerar um novo módulo para guardar as novas macros gravadas. Em todo caso, podemos reorganizar as macros de uma pasta de trabalho diretamente pelo editor do Visual Basic (VBE), recortando o código de uma macro gravada num módulo e colando-o no módulo desejado, exatamente como fazemos com arquivos e textos.

Existem dois tipos básicos de módulos, os Módulos de Classe e os Módulos Padrão. Vamos entender suas utilidades e a diferença entre eles.

. Vamos entender suas utilidades e a diferença entre eles. Módulos Padrão São módulos nos quais

Módulos Padrão

São módulos nos quais você pode colocar os procedimentos Sub e Function que deseja que estejam disponíveis a outros procedimentos, por todo o seu projeto ativo. As macros gravadas são armazenadas neste tipo de módulo.

Eles contêm procedimentos de uso geral que não estão associados a nenhum outro objeto, como planilhas, pasta de trabalho ou formulário, e que podem ser executados dentro de qualquer outro módulo pertencente ao projeto. Por este motivo, as definições num Módulo Padrão são, por default, do tipo Public. Ao serem criados, estes módulos aparecem abaixo das planilhas, na janela Project Explorer do VBE.

Módulos de Classe

Estes módulos contêm um código local para uma determinada classe ou objeto, ou seja, para uma planilha, a pasta de trabalho ou um formulário no Excel. Quando você cria o primeiro procedimento de um formulário, o Excel cria automaticamente um módulo associado a este. Este módulo é chamado de Módulo de Classe, e é nele que criamos os procedimento em VBA para o formulário.

As planilhas e a pasta de trabalho, já possuem um módulo de classe associado, bastando dar um clique duplo em cima do ícone da planilha ou pasta de trabalho, no Project Explorer, para que seja aberto o módulo de classe.

Os módulos são criados em uma janela especial, no VBE. Toda vez que você inserir

Os módulos são criados em uma janela especial, no VBE. Toda vez que você inserir um módulo, seja ele de Classe ou Padrão, será exibida uma janela de código, tal com descrito abaixo:

exibida uma janela de código, tal com descrito abaixo: Caixa de Objetos É uma caixa onde
exibida uma janela de código, tal com descrito abaixo: Caixa de Objetos É uma caixa onde

Caixa de Objetos

janela de código, tal com descrito abaixo: Caixa de Objetos É uma caixa onde são listados
janela de código, tal com descrito abaixo: Caixa de Objetos É uma caixa onde são listados
janela de código, tal com descrito abaixo: Caixa de Objetos É uma caixa onde são listados

É uma caixa onde são listados todos os objetos existentes, que originam o código implementado na janela Módulo. Clique na seta à direita para escolher um dos objetos a lista.

Caixa de Procedimentos

É uma caixa que lista todas as funções e procedimentos implementados na janela Módulo. Clique na seta à direita para escolher algum procedimento ou função da lista.

Área de Código

Área onde é escrito o código, ou seja os procedimentos em VBA.

Como Criar um Módulo

Os módulos podem ser criados de duas formas:

1. Quando você grava uma macro, sem que você perceba, os códigos desta são gravados em um módulo. Esta é a maneira mais simples de se criar um módulo.

2. Você também pode criar um módulo, seja ele Padrão ou de Classe, através do menu Inserir do VBE. Quando você criar um módulo através do menu Inserir, este abrirá automaticamente um Módulo Padrão ou de Classe, dependendo da opção escolhida, para que você possa inserir as linhas de códigos desejadas.

Pode-se ainda clicar com o botão direito do mouse no Project Explorer, que um menu pop-up aparecerá. Selecione, então, a opção Inserir, e você verá uma lista de opções, dentre elas, escolha Módulo Padrão ou de Classe.

Salvando Módulos Os módulos criados no VBA são salvos juntos com o arquivo .xlsx .

Salvando Módulos

Os módulos criados no VBA são salvos juntos com o arquivo .xlsx. Assim sendo, para salvar um Módulo Padrão ou Módulo Classe ou ainda um UserForm (formulário do usuário, conforme veremos adiante), basta salvar o arquivo do Excel.

Portanto, quando você estiver salvando um determinado arquivo do Excel, estará também salvando todos os módulos e procedimentos que o arquivo contém. E reciprocamente, quando você estiver salvando um determinado módulo no VBE, estará também salvando todas as alterações feitas na planilha do Excel.

Exportando Modulos

Outra forma que existe para salvarmos um módulo ou um formulário personalizado é exportarmos o conteúdo do módulo ou do formulário para um arquivo; que recebe uma das três extensões a seguir: .bas (módulos padrão), .cls (módulos classe) ou .frm (formulários personalizados). Estas extensões de arquivo são geradas pelo Visual Basic Editor (VBE) durante o processo de exportação.

Basic Editor ( VBE ) durante o processo de exportação. O processo de Exportação nos permite

O processo de Exportação nos permite gravar somente os módulos e formulários em arquivos de pequeno tamanho que podem ser mantidos como “backup” de soluções criadas. Logo, esta opção torna-se extremamente útil por exemplo quando queremos criar uma cópia de macros criadas a partir de um certo arquivo, mas que poderão servir de solução para problemas semelhantes, dentro de outros arquivos.

Para exportar o conteúdo de um Módulo Padrão, Módulo Classe ou de um

UserForm, basta clicar com o botão direito do mouse sobre o nome do módulo ou do

formulário na janela VBAProject e selecionar a opção Exportar Arquivo

apresentada a caixa de diálogo abaixo para confirmar o local da gravação e o nome do módulo desejados.

Será

o local da gravação e o nome do módulo desejados. Será Treinamento em MS Excel 2013
Quando desejar importar um arquivo de módulo, para dentro de uma outra pasta do Microsoft

Quando desejar importar um arquivo de módulo, para dentro de uma outra pasta do Microsoft Excel (.xlsx,) proceda da seguinte forma:

1. Abra o arquivo .xlsx normalmente dentro do Excel;

2. Acesse o editor do Visual Basic (VBE), clicando na guia Desenvolvedor, selecione a opção Visual Basic;

3. Clique com o botão direito sobre o nome da pasta de trabalho na janela

VBAProject e selecione Importar Arquivo

;

4. Informe o caminho e o nome do arquivo (.bas / .cls / .frm) a importar para a pasta atual, conforme ilustra a imagem abaixo.

para a pasta atual, conforme ilustra a imagem abaixo. 5. Clique no botão Abrir . Trabalhando

5. Clique no botão Abrir.

Trabalhando com Procedimentos

Procedimentos são sequências nomeadas de instruções executadas como uma unidade. Todo o procedimento é definido em um Nível de Módulo e todo código executável tem de necessariamente estar contido em um procedimento. Usando a linguagem de programação VBA, você pode criar três tipos de diferentes de procedimentos:

Procedimento SUB;

Procedimento FUNCTION;

Procedimento PROPERTY.

Procedimento SUB As macros gravadas no Microsoft Excel são os exemplos mais claros do que

Procedimento SUB

As macros gravadas no Microsoft Excel são os exemplos mais claros do que significa um procedimento SUB no VBA. O procedimento SUB executa uma sequência lógica de instruções que, em conjunto, realizam uma tarefa, automatizando ações repetitivas no seu trabalho dentro do aplicativo.

Você também pode utilizar argumentos em um procedimento SUB, como constantes, variáveis ou expressões. Se um procedimento SUB não contiver um argumento, a instrução SUB deve incluir um conjunto de parênteses vazios, após o nome.

Para declarar um procedimento SUB diretamente no VBE, abra um módulo e use a seguinte sintaxe:

[Public ou Private] Sub <nome da procedure>([argumentos]) <bloco de comandos> [Exit Sub] End Sub

Analise o exemplo abaixo, para que você possa entender melhor:

o exemplo abaixo, para que você possa entender melhor: Public Sub Erro() Msgbox “Ocorreu um erro

Public Sub Erro() Msgbox “Ocorreu um erro muito estranho!”, vbcritical Exit Sub End Sub

Quanto à sua disponibilidade em ser chamado, por outro procedimento, um procedimento SUB poderá ser do tipo Público ou Privado. Para alterar o tipo padrão de um procedimento SUB, basta utilizar as declarações Public ou Private, antes da declaração do procedimento SUB.

Quando ele é escrito em um módulo padrão, o procedimento é, por default, do tipo público, ou seja, poderá ser chamado por qualquer outro procedimento dentro do Projeto.

Se ele for criado dentro de um módulo de Classe, por padrão, o procedimento será Privado, ou seja, ele somente poderá ser chamado por um outro procedimento dentro do mesmo módulo em que ele foi escrito.

O comando Exit Sub provoca a saída imediata do procedimento SUB, e é utilizado quando queremos “forçar” a saída da rotina, por alguma questão particular de nosso código.

Chamando uma Procedimento SUB

No VBA, assim como em outras linguagens de programação, podemos fazer recorrências entre procedimentos. Isto é, chamar um procedimento dentro de outro procedimento. Para chamar uma procedimento SUB, dentro de outro procedimento, basta digitar seu nome, seguido dos parâmetros, caso existam.

Exemplo : Na rotina abaixo declarada, caso um erro ocorra durante seu processamento, chamamos o

Exemplo: Na rotina abaixo declarada, caso um erro ocorra durante seu processamento, chamamos o procedimento SUB denominado TratarErro, o qual foi definido anteriormente.

Private Sub Exemplo_Recorrencia()

If ValorDigitado = 0 then TratarErro

End If

End Sub

Chamando Sub Procedures com Parâmetros

Um argumento, ou parâmetro, não é obrigatório num procedimento SUB. No entanto, quando o utilizamos, dizemos que estamos chamando essa rotina e passando-lhe um parâmetro, que será utilizado por ela para o processamento de suas ações. Veja o exemplo abaixo:

Public Sub Resultado(saldo As Integer) If saldo > 0 then Msgbox “OK! Saldo Positivo.” ElseIF saldo < 0 then Msgbox “Atenção! Saldo Negativo.”

Else

< 0 then Msgbox “Atenção! Saldo Negativo.” Else Msgbox “Saldo Zero.” End If End Sub Veja

Msgbox “Saldo Zero.”

End If

End Sub

Veja como poderíamos chamar esta procedure dentro de outra Sub, passando um valor como parâmetro.

Sub Imposto()

Resultado(totcred totdeb)

End Sub

Procedimento FUNCTION

Os procedimentos FUNCTIONS podem retornar um valor para quem o chamar, esta é a diferença em relação aos procedimentos SUB, que não retorna um valor, apenas executam ações. Você pode utilizar em um procedimento FUNCTION argumentos, como constantes, variáveis ou expressões. Se por acaso, um procedimento FUNCTION não tiver um argumento, sua instrução FUNCTION deve ter um conjunto de parênteses vazio.

Para declarar um procedimento FUNCTION, use a seguinte sintaxe:

[Public,Private ou Static] Function <nome da função>([argumentos]) [As <tipo>] <bloco de comandos> [Exit Function] End Function

Note que pela sintaxe do procedimento FUNCTION que este pode ser tanto Público quanto Privado.

Note que pela sintaxe do procedimento FUNCTION que este pode ser tanto Público quanto Privado. Todas as observações que fizemos anteriormente, para os tipos de procedimentos SUB, valem para os procedimentos FUNCTION.

A expressão As tipo irá especificar um tipo de dados que à função retornará. O

retorno da função deve ser atribuído a uma variável com o nome da função.

Uma função definida em um módulo padrão, estará disponível para ser utilizada dentro de sua planilha no Excel. Esta é uma das grandes utilidades de criar funções no VBA.

O comando Exit Function provoca a saída imediata da Function Procedure.

NOTA: Sugerimos que você use o procedimento Sub quando não for necessário retornar um valor, e que seja usado o procedimento Function quando for necessário retornar um valor.

Procedimento Property

for necessário retornar um valor. Procedimento Property O procedimento Property é uma série de instruções do

O procedimento Property é uma série de instruções do VBA que permite a criação de propriedades personalizadas. Ao criar um procedimento Property, este irá tornar-se uma propriedade do módulo que contém o procedimento.

O procedimento Property deve ser utilizado quando se está programando com Módulos Classe, definindo-se objetos e suas propriedades. Um Módulo Classe define toda a estrutura de um objeto

A

criação de procedimentos Property está além do escopo do nosso curso, pois

sua utilização efetiva requer um conhecimento mais aprofundado de Programação Orientada a Objeto. Porém, caso você deseje maiores informações, encontrará na Internet diversos sites com tutorias a respeito deste assunto.

Outra forma de inserirmos um procedimento dentro de um módulo, a partir da janela do VBE, é através do menu Inserir, opção Procedimento. Aparecerá o quadro abaixo:

, opção Procedimento . Aparecerá o quadro abaixo: Treinamento em MS Excel 2013 com VBA –
1. Na caixa Nome, digite um nome para a função; 2. Na caixa Tipo, escolha

1.

Na caixa Nome, digite um nome para a função;

2.

Na caixa Tipo, escolha a opção Sub;

3.

Na caixa Escopo, escolha se a função que está sendo criada será Pública ou Particular;

4.

Se você desejar que as variáveis locais sejam estáticas, marque a opção Todas as variáveis locais como estáticas;

5.

Clique no botão OK e automaticamente a Sub procedure que você acabou de criar será declarada dentro do módulo corrente;

6.

Insira então os códigos desejados.

corrente; 6. Insira então os códigos desejados. Treinamento em MS Excel 2013 com VBA – Copyright
C A P Í T U L O 4 4 V V a a r

C A P Í T U L O 44 VVaarriiáávveeiiss,, TTiippooss ddee DDaaddooss ee OOppeerraaddoorreess

Tópicos deste capitulo

Trabalhando com Variáveis

Tipos de Dados

Variáveis

Constantes

Arrays e Matrizes

Operadores

Precedência de Operadores

 Operadores  Precedência de Operadores Treinamento em MS Excel 2013 com VBA – Copyright ©
Trabalhando com Variáveis Variáveis são “depósitos temporários de informações” que uma rotina pode necessitar

Trabalhando com Variáveis

Variáveis são “depósitos temporários de informações” que uma rotina pode necessitar e devem ser declaradas de acordo com o tipo de dados que elas podem conter. Os tipos de dados no VBA incluem: Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String, Variant, Decimal e os tipos definidos pelo usuário.

As Variáveis são criadas na memória do computador, no momento da execução do procedimento e, normalmente, são apagadas da memória ao fim deste. Cada variável, dependendo do tipo de dados com que ela é criada, ocupa um determinado espaço na memória do computador. Devemos ser parcimoniosos quanto à criação e criteriosos quanto ao tipo de dados escolhido para cada variável, para não gastarmos mais memória que o necessário e não tornarmos lenta a execução de nossos procedimentos.

Tipos de Dados

lenta a execução de nossos procedimentos. Tipos de Dados Veja abaixo para que servem cada um

Veja abaixo para que servem cada um desses tipos e quanto espaço ocupam na memória do computador:

de 0 a 255. As variáveis de tipo Byte são armazenadas como números de 8 bits simples

Byte: É usado para armazenar números inteiros e positivos, que variam no intervalo

(ocupa 1 byte) e sem sinal.

Boolean: Este tipo de dado é armazenado como número de 16 bits (ocupa de memória 2 bytes) e assume somente o valor de True e False. Por exemplo, se uma variável numérica se converte para booleana, esta se torna Falsa se for 0 e Verdadeira para quaisquer outros valores. Mas se a variável booleana se converter para outro tipo de dado, o valor False se tornará 0 e o valor True -1. Use as palavras True ou False para atribuir um valor às variáveis Boolean (booleanas).

Integer Este tipo de dado é armazenado como número de 16 bits (ocupa de memória 2 bytes), cujo valor de intervalo é de -32.768 a 32.767.

Long: Este tipo de dado é armazenado como número de 32 bits (ocupa de memória 4 bytes), cujo valor de intervalo é de -2.147.483.648 a 2.147.483.647.

Currency: Este tipo de dado é muito útil para cálculos que envolvem dinheiro, pois sua precisão é de 15 dígitos à esquerda da vírgula decimal e 4 dígitos à direita, representando assim um intervalo de -922.337.203.685.477,5808 a 922.337.203.685.477,5807. Este dado é armazenado como número de 64 bits (ocupa de memória 8 bytes).

• Single : Este tipo de dado é armazenado como números de 32 bits (ocupa

Single: Este tipo de dado é armazenado como números de 32 bits (ocupa de

memória 4 bytes), com valor no intervalo de -3,402823E38 a -1,401298E-45 para

valores negativos e de 1,401298E-45 a 3,402823E38 para valores positivos

Double: Este tipo de dado é armazenado como números de 64 bits (ocupa de

memória 8 bytes), com valor no intervalo de -1,79769313486232E308 a - 4,94065645841247E-324 para valores negativos e de 4,94065645841247E-324 a

1,79769313486232E308 para valores positivos.

Date: Este tipo de dado é armazenado como números de 64 bits (ocupa de memória

8 bytes) que representam as datas que variam de 1 de janeiro de 100 a 31 de dezembro de 9999 e as horas de 0:00:00 a 23:59:59. Qualquer valor literal de data reconhecível pode ser atribuído às variáveis Date (data). Os literais Date devem estar entre sinais (#), por exemplo, #1 de janeiro de 1993# ou #1 jan 93#. Importante: As variáveis Date exibem as datas de acordo com o formato abreviado de data reconhecido por seu computador. As horas são exibidas de acordo com o formato de hora (12 ou 24 horas) reconhecido por seu computador.

String: Existem dois tipos de seqüências: seqüências de comprimento variável e de

comprimento fixo. A seqüência de comprimento variável pode conter até aproximadamente 2 bilhões (2^31) de caracteres. Já a seqüência de comprimento fixo pode conter de 1 até aproximadamente 64K (2^16) de caracteres. O tamanho ocupado de memória para uma String variável é de 16 bytes mais o tamanho da String e para a String fixa apenas o tamanho da String.

String e para a String fixa apenas o tamanho da String. • memória 4 bytes) que

memória 4 bytes) que se referem a objetos. Uma variável declarada como um Object

Object: Este tipo de dado é armazenado como endereço de 32 bits (ocupa de

poderá referir-se a qualquer objeto criado pela aplicação.

Variant: Este tipo de dado é automaticamente especificado caso você não especifique um tipo de dado quando declara uma constante, variável ou argumento. As variáveis do tipo Variant podem adquirir qualquer valor numérico no intervalo de Double, ou qualquer caractere. O tamanho ocupado de memória para uma Variant de números é de 16 bytes e para uma Variant com caracteres é de 22 bytes mais o tamanho da String.

Variáveis Simplificando, é um local de armazenamento nomeado, podendo conter dados que podem ser modificados

Variáveis

Simplificando, é um local de armazenamento nomeado, podendo conter dados que podem ser modificados durante a execução do programa. Cada variável deve ter um nome que irá identificá-la de maneira exclusiva dentro do seu nível de escopo. Já um tipo de dados pode ou não ser especificado.

Todos os nomes de variáveis devem começar com um caractere alfabético e devem ser exclusivos dentro do mesmo escopo. Uma variável não pode ter mais de 255 caracteres e não pode conter caracteres especiais, como por exemplo, os seguintes: # $ % & ! . ) } ] / \ | @ e outros.

Existem alguns nomes reservados, os quais não podem ser usados, como: DIM- SUB-WITH-END e outras. Caso você utilize uma palavra reservada, o VBA emitirá um erro ao executar o programa. O VBA não faz distinção entre maiúsculas e minúsculas, nos nomes das variáveis.

um nome para a variável, poderá então declarar

seu tipo de dados como: Integer, Boolean, Byte, Long, Currency, Single, Date, String,

Object ou Variant (quando não declarada).

Assim que você determinar

Variant (quando não declarada). Assim que você determinar Declarando uma Variável O primeiro passo para se

Declarando uma Variável

O primeiro passo para se declarar uma variável, é determinar onde ela será declarada, e isto depende muito de cada sistema. Geralmente as variáveis são declaradas usando-se a instrução Dim. Uma instrução de declaração pode ser inserida dentro de um procedimento, e isto criaria uma variável que chamamos de Nível de Procedimento. Ou ela poderia ser inserida na parte superior de um módulo, na seção Declarações, então neste caso estaríamos criando uma variável de Nível de Módulo.

Ao criar uma variável de Nível de Procedimento, está estará disponível apenas ao Nível de Procedimento. Os Níveis de Procedimentos são instruções que se localizam dentro de um procedimento Function, Property ou Sub. Ao criar uma variável de Nível de Módulo, esta estará disponível para todas as funções do módulo onde ela foi declarada. Abaixo estamos mostrando uma variável Soma, especificando o tipo de dado Double. Ficaria assim:

Dim soma As Double

Observe, a sintaxe é esta:

Dim <nome da variável> As <tipo da variável>

Usando a Instrução Public

Você deve utilizar uma instrução Public, em Nível de Módulo, quando desejar que a variável esteja disponível para todos os procedimentos no projeto. Se a variável Pública for declarada num Módulo Padrão ou num Módulo Classe, ela também poderá ser utilizada em qualquer projeto que faça referência ao projeto onde a variável Pública foi declarada.

Veja abaixo uma variável Pública chamada Soma, do tipo Double: Public soma As Double A

Veja abaixo uma variável Pública chamada Soma, do tipo Double:

Public soma As Double

A sintaxe é a mesma:

Public <nome da variável> As <tipo da variável>

Usando a Instrução Private

Você utiliza a instrução Private para declarar as variáveis privadas em Nível de Módulo. Estas variáveis podem ser utilizadas somente por procedimento no mesmo módulo. A instrução Dim é equivalente à instrução Private, se esta for utilizada em Nível de Módulo. Mas mesmo assim, sugerimos que seja usada a instrução Private para facilitar a interpretação do código.

A seguir, mostramos uma variável Private chamada Soma, do tipo Double:

Private soma as Double

Sua sintaxe:

Soma, do tipo Double: Private soma as Double Sua sintaxe: Private <nome da variável> As <tipo

Private <nome da variável> As <tipo da variável>

Usando a Instrução Option Explicit

Utilizando a instrução Option Explicit, você estará forçando a declaração explícita de todas as variáveis do módulo onde esta se encontra. Se esta instrução for usada, ela deve parecer em um módulo antes de qualquer procedimento. Caso você optar em não usar a instrução Option Explicit, todas as variáveis não declaradas serão do tipo Variant, exigindo assim mais recursos de memória que a maioria das outras variáveis. Sugerimos usar esta instrução em todos os módulos para evitar a digitação incorreta do nome de uma variável existente ou até mesmo para evitar confusão no código em que o escopo da variável não esteja claro. Você pode fazer com que o Visual Basic for Applications inclua automaticamente a instrução Option Explicit em todos os módulos novos. Para isso:

1.

No VBE, clique no menu Ferramentas e escolha Opções.

2.

Na guia Editor, marque a opção Requerer declaração de variável e clique em 0K.

Note que somente será inserida a instrução Option Explicit nos novos módulos inseridos, os módulos existentes não serão alterados. Se você desejar, você mesmo poderá inserir a instrução. Basta digitar Option Explicit no cabeçalho do módulo desejado.

Atribuindo Valores às Variáveis Agora que você aprendeu a declarar variáveis, o próximo passo é

Atribuindo Valores às Variáveis

Agora que você aprendeu a declarar variáveis, o próximo passo é atribuir valores às variáveis já declaradas. É simples, para atribuir um valor utilizamos o sinal de igualdade (=). Para um melhor entendimento, veja o exemplo abaixo:

Dim Soma As Integer Soma = 0

Veja outro exemplo:

Dim Soma, Var1, Var2 As Integer (Somente Var2 é Integer, as demais são Variant) Soma = Var1 + Var2

Constantes

Constantes são itens nomeados que mantêm um valor constante por toda a execução de um programa. Uma constante é um nome significativo que assume o local de um número ou uma sequência de caracteres que não serão alterados durante a execução de um procedimento.

serão alterados durante a execução de um procedimento. Assim, uma constante não pode ser modificada no

Assim, uma constante não pode ser modificada no decorrer de uma rotina e nem atribuir um novo valor, assim como pode com uma variável. Sugerimos o uso de constantes para facilitar a leitura e a manutenção do código do seu programa.

Declarando Constantes

Ao declarar uma constante, você pode atribuir a ela um nome significativo e um valor. Você deve usar a instrução Const para declarar a constante e definir seu valor. Você pode declarar uma constante tanto em Nível de Procedimento, quanto em Nível de Módulo. Se você declarar uma constante em Nível de Módulo, por padrão ela será privada (Private).

Para declarar constante Pública você deverá usar a palavra-chave Public antes da instrução Const. Você não pode declarar uma constante Public dentro de um procedimento. Já para explicitar uma constante Privada, use a palavra-chave Private antes da instrução Const. Neste caso, você também não pode declarar uma Private Const em um procedimento. Se você seguir estes procedimentos, você estará facilitando a interpretação do seu código.

Abaixo, mostramos um exemplo de uma constante Public de nome Idade, do tipo Integer, e de valor 23:

Public Const idade As integer = 23

Sua sintaxe:

[Public/Private] Const <nome const> As <tipo const> = <valor>

Trabalhando com Matrizes Matriz é um conjunto de elementos seqüencialmente indexados que possui o mesmo

Trabalhando com Matrizes

Matriz é um conjunto de elementos seqüencialmente indexados que possui o mesmo tipo de dados intrínseco. Cada elemento de uma matriz possui um número de índice identificador exclusivo. As alterações feitas em um elemento de uma matriz não afetam os outros elementos.

Declarando Matrizes

As matrizes são declaradas da mesma maneira que as outras variáveis, utilizando instruções Dim, Private ou Public. A diferença entre as variáveis escalares (que não são matrizes) e variáveis de matriz é que geralmente você deve especificar o tamanho da matriz. Uma matriz cujo tamanho é especificado é uma matriz de tamanho fixo, uma matriz cujo tamanho pode ser alterado durante a execução de um programa é uma matriz dinâmica. A indexação de uma matriz a partir de 0 ou 1 depende da definição da instrução Option Base. Se Option Base 1 não for especificada, todos os índices de matriz iniciarão em zero.

Declarando uma matriz fixa

de matriz iniciarão em zero. Declarando uma matriz fixa Na linha de código a seguir, uma

Na linha de código a seguir, uma matriz de tamanho fixo é declarada como uma matriz Integer com 11 linhas e 11 colunas:

Dim MyArray (10, 10) As Integer

Sua sintaxe:

[Public/Private] <nome Matriz> (Quantidade de elementos) As <tipo de dados>

Declarando uma matriz dinâmica

Ao declarar uma matriz dinâmica, você pode dimensionar a matriz durante a execução do código. Utilize uma instrução Static, Dim, Private ou Public para declarar uma matriz, deixando vazios os parênteses, como mostra o exemplo a seguir.

Dim sngArray() As Single

Você pode utilizar a instrução ReDim para declarar uma matriz implicitamente dentro de um procedimento. Tome cuidado para não digitar errado o nome da matriz quando utilizar a instrução ReDim. Mesmo que haja uma instrução Option Explicit incluída no módulo, será criada uma segunda matriz. Por exemplo, a instrução a seguir acrescenta 10 elementos à matriz varArray sem perder os valores atuais dos elementos originais.

ReDim Preserve varArray(UBound(varArray) + 10)

Em um procedimento dentro do escopo da matriz, utilize a instrução ReDim para alterar o número de dimensões, definir o número de elementos e definir os limites superior e inferior de cada dimensão. Utilize ReDim Preserve para expandir uma matriz enquanto preserva os valores existentes na matriz.

Trabalhando com Operadores Existem quatro tipos de operadores: os aritméticos, os de comparação, os lógicos

Trabalhando com Operadores

Existem quatro tipos de operadores: os aritméticos, os de comparação, os lógicos e os de concatenação. Abaixo vamos listá-los e aprender como usá-los e para que servem.

Operadores Lógicos

Os operadores lógicos servem para efetuar apenas operações lógicas. Veja a lista de operadores lógicos abaixo:

And Not Or

A sintaxe destes operadores é a seguinte:

Result = expression1 <operador> expression2

Onde:

Result qualquer variável numérica. Expression1 qualquer expressão. Operador de sua escolha. Expression qualquer
Result
qualquer variável numérica.
Expression1
qualquer expressão.
Operador
de sua escolha.
Expression
qualquer expressão.
Observe que somente o operador Not tem uma sintaxe diferente. Veja abaixo:
Result = Not expression
Operador
Comentário
And
Efetua uma conjunção lógica em duas expressões.
Not
Efetua uma negação lógica em uma expressão.
Or
Efetua uma disjunção lógica em 2 expressões

Operadores Aritméticos

Usamos estes operadores para realizar cálculos matemáticos. Veja a lista de operadores aritméticos:

Exponenciação ( ^ )

^

*

/

\

Mod

Result = number ^ exponent

+

-

Este operador é usado para elevar um número à potência de um expoente. Exemplo:

Dim Valor Valor = 6 ^ 2 “retorna 36”

Multiplicação ( * ) Result = number1 * number2 Este operador é usado para multiplicar

Multiplicação ( * )

Result = number1 * number2

Este operador é usado para multiplicar dois números. Exemplo:

Dim valor Valor = 5 * 5 “retorna 25”

Divisão ( / )

Result = number1 / number2

Este operador é usado para dividir dois números e retornar um resultado de ponto flutuante. Exemplo:

Dim valor Valor = 5 / 2 “retorna 7,5”

Divisor de Inteiros ( \ )

Result = number1 \ number2

Este operador é usado para dividir dois números e retornar um resultado inteiro. Exemplo:

dois números e retornar um resultado inteiro. Exemplo: Dim valor Valor = 11 \ 2 “retorna

Dim valor Valor = 11 \ 2 “retorna 5”

Módulo Aritmético ( Mod )

Result = number1 Mod number2

Este operador é usado para dividir dois números e retornar apenas o resto da divisão. Exemplo:

Dim valor Valor = 7 Mod 2 “retorna 1”

Adição ( + )

Result = expression1 + expression2

Este operador é usado para somar dois números. Exemplo:

Dim soma Soma = 15 + 15 “retorna 30”

Subtração ( - )

Result = number1 - number2

Este operador é usado para calcular a diferença entre dois números. Exemplo:

Dim resultado Resultado = 10 – 3 “retorna 7”

Operadores de Comparação Estes operadores servem para indicar uma relação entre dois ou mais valores

Operadores de Comparação

Estes operadores servem para indicar uma relação entre dois ou mais valores numa expressão. Veja a lista destes operadores abaixo:

<

<=

>

>=

<>

=

A sintaxe destes operadores é:

Result = expression1 <operador> expression2

Onde:

Result

qualquer variável numérica.

Expression1

qualquer expressão.

Operador

de sua escolha.

Expression 2

qualquer expressão.

Operador Comentário < Menor que <= Menor ou igual a > Maior que >= Maior
Operador
Comentário
<
Menor que
<=
Menor ou igual a
>
Maior que
>=
Maior ou igual a
<>
Diferente
=
Igual
Operadores de Concatenação

Muitos programadores usam o sinal de (+) para concatenar Strings. Sugerimos que não seja usado este sinal para uma concatenação, pois o resultado final pode ser uma soma e não uma concatenação. Veja um exemplo abaixo:

Dim var1 Var1 = 2 + 5 este processo retornaria “7”

Na verdade, não desejávamos somar, nossa intenção era concatenar. Para obter uma concatenação correta, devemos fazer uso do E comercial (&), conforme abaixo:

Dim var1 Var1 = 2 & 5 este processo retornaria “25”

Veja um outro exemplo de concatenação:

Dim exemplo

exemplo = “concatenação” & “correta” (Isto retornaria “concatenação correta”)

Precedência de Operadores Precedência de operadores são as diversas operações que podem ocorrer em uma

Precedência de Operadores

Precedência de operadores são as diversas operações que podem ocorrer em uma expressão, onde cada parte é avaliada e resolvida em uma ordem predeterminada. Quando usamos em uma expressão várias categorias de operadores, primeiro serão avaliadas os operadores aritméticos; em segundo lugar, os de comparação; e por último, os operadores lógicos.

É importante saber que os operadores de comparação usam uma mesma precedência e por este motivo, são avaliados da esquerda para a direita, na mesma ordem que é apresentada na expressão. Já os operadores lógicos e aritméticos são avaliados na ordem de precedência abaixo. Veja a tabela:

Ordem

Aritméticos

Lógicos

1º.

Exponenciação ( ^ )

Not

2º.

Multiplicação e Divisão ( * / )

And

3º.

Divisão de Inteiros ( \ )

Or

4º.

Módulo aritmético ( Mod )

Xor

(exclusão lógica)

5º.

Adição e Subtração ( + - )

Eqv

(Equivalência Lógica)

6º.

Concatenação de seqüência de caracteres (&)

Imp (Implicancia Lógica)

de caracteres (&) Imp (Implicancia Lógica) Treinamento em MS Excel 2013 com VBA – Copyright ©
C A P Í T U L O 5 5 E E l l e

C A P Í T U L O 55 EElleemmeennttooss EEsssseenncciiaaiiss ddoo VVBBAA ppaarraa EExxcceell 22001133

Tópicos deste capitulo

Funções do VBA

Funções de Planilha

Caixas de Mensagens

Os Principais Objetos do Excel 2013

O objeto Application

O objeto WorkBook

O objeto WorkSheet

O objeto Range

WorkBook  O objeto WorkSheet  O objeto Range Treinamento em MS Excel 2013 com VBA
Funções do VBA Assim como a maioria das linguagens de programação, o VBA oferece várias