25
EXCEL VBA (aula 8) Visual Basic prof. Gustavo Zimmermann

Excel VBA: Aula 8

Embed Size (px)

DESCRIPTION

Curso de Excel VBA no Senac Santa Maria

Citation preview

Page 1: Excel VBA: Aula 8

EXCEL VBA (aula 8) Visual Basic prof. Gustavo Zimmermann

Page 2: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

PUBLIC Podem ser chamadas dentro de qualquer rotina e de qualquer

parte do projeto, como módulos, formulários, objetos. Também ficam disponíveis em

outro projeto aberto, desde que você adicione a referência a esse projeto.

PRIVATE Só podem ser executadas no módulo onde foram escritas.

Elas só podem ser chamadas dentro das rotinas que pertençam ao mesmo módulo ou

objeto. Quando chamadas a partir de outro módulo, ocorrerá o erro: “Sub ou Function

não definida”.

Excel VBA – Visual Basic

Rotinas (pág. 6)

Page 3: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

PUBLIC Sub-rotinas e funções são públicas por padrão. Caso não queira que sejam públicas, é

necessário que declare usando a palavra-chave Private Sub ou Private Function.

PRIVATE Procedimentos de evento são privados por padrão, a palavra-chave Private é

automaticamente inserida antes da declaração do procedimento (Private Sub evento).

Excel VBA – Visual Basic

Rotinas (pág. 6)

Page 4: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Sintaxe Sub-rotinas

Excel VBA – Visual Basic

Rotinas (pág. 6)

1. Public Sub

2. <nome_da_macro> ( )

3. <corpo_da_macro>

4. End Sub

1. Private Sub

2. <nome_da_macro> ( )

3. <corpo_da_macro>

4. End Sub

Sintaxe Funções

1. Public Function <Nome Função> (argumentos)

2. <Nome da Função> = <Valor / Expressão>

3. End Function

1. Private Function <Nome Função> (argumentos)

2. <Nome da Função> = <Valor / Expressão>

3. End Function

Page 5: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Passagem de Parâmetros (pág. 7-9)

1. Sub Dobro (Num As Integer)

2. <corpo_da_macro>

3. End Sub

ByVal Quando declarar os argumentos de uma função/procedimento, não é necessário usar

a palavra ByVal já que os argumentos assumem automaticamente a opção ByVal, pois

este é o método padrão. As duas declarações a seguir são equivalentes:

1. Sub Dobro (ByVal Num As Integer)

2. <corpo_da_macro>

3. End Sub

OU

*Na passagem de parâmetro por valor, ao iniciar a execução, a função faz uma cópia

dos valores passados para serem utilizados nas operações.

Page 6: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Passagem de Parâmetros (pág. 7-9)

1. Sub Passagem_valor ()

2. Dim x As Integer

3. x = 3

4. MsgBox "Valor dado a variável X é: " & x

5. 'Aqui estou chamando a procedure que vai dobrar o valor de x (sub Dobro)

6.

7. Dobro (x)

8. MsgBox "Valor de X Após a Execução: " & x

9. End Sub

10. Sub Dobro (ByVal Num As Integer)

11. MsgBox "Valor passado como parâmetro: " & Num

12. Num = Num * 2

13. MsgBox "Dobro do valor: " & Num

14. End Sub

ByVal Exemplo:

Page 7: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Passagem de Parâmetros (pág. 7-9)

ByRef Para poder alterar o valor original de uma variável, a função/procedimento, tem que

receber o parâmetro por referência – ByRef, ou seja, a função/procedimento tem que

receber uma referência ao endereço de memória da variável passada como parâmetro

e não uma simples cópia do valor da variável . Ao receber um parâmetro por referência

(ByRef), as alterações que a função/procedimento fizer, serão feitas diretamente na

variável original, pois agora, a função/procedimento tem acesso ao endereço da

variável na memória e não mais apenas uma cópia do seu valor

1. Public Sub DobraValor (ByRef Num As Integer)

2. <corpo_da_macro>

3. End Sub

Page 8: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Passagem de Parâmetros (pág. 7-9)

1. Sub Passagem_Ref()

2. Dim y As Integer

3. y = 3

4. MsgBox "Valor dado a variável Y é: " & y

5. 'Aqui estou chamando a procedure que vai dobrar o valor de y (sub Dobro_ref)

6.

7. Call Dobro_ref (y)

8. MsgBox "Valor de Y Após a Execução: " & y

9. End Sub

10. Sub Dobro_ref (ByRef Num As Integer)

11. MsgBox "Valor passado como parâmetro: " & Num

12. Num = Num * 2

13. MsgBox "Dobro do valor: " & Num

14. End Sub

ByRefl Exemplo:

Page 9: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Tipos de Variáveis

Tipo Tamanho Valor/Descrição

Boolean 2 bytes True ou False.

Byte 1 byte De 0 a 255

Date 8 bytes Tipo para datas

Decimal 12 bytes O maior valor possível é +/- 79.228.162.514.264.337.593.950.335.

Double 8 bytes Tipo para números Reais

Integer 2 bytes -32.768 a 32.767.

Long 4 bytes De -2.147.483.648 a 2.147.483.648

Single 4 bytes Maior variedade de números Reais

String 10 bytes De 1 a 2 bilhões de caracteres.

Variant (numérica) 16 bytes Maior quantidade de variações de números

Variant (texto) 22 bytes Maior quantidade de caracteres

Page 10: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

1. Dim Nome_da_variável As Tipo_da_variavel

Declaração

Excel VBA – Visual Basic

Tipos de Variáveis

1. Dim Taxa As Double

1. Dim Taxa, Valor, Total As Double

Page 11: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Operadores Aritméticos

Operador Descrição

+ Adição

- Subtração

* Multiplicação

/ Divisão

\ Divisão inteira

^ Expponenciação

Mod Retorna o resto da divisão

Page 12: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Operadores de Comparação

Operador Descrição

= Igual a

> Maior que

< Menor que

<> Diferente de

>= Maior ou Igual

<= Menor ou Igual

Is É. Compara duas variáveis de referência a objetos.

Like Como. Compara sequência de caracteres.

Page 13: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Operadores Lógicos

Operador Descrição

And E. Acrescenta condições a um teste lógico. Retorna True se todas as condições forem verdadeiras e, no caso contrário, retorna False.

Or Ou. Acrescenta condições a um teste lógico. Retorna True se pelo menos uma das condições for verdadeira e False caso todas forem falsas.

Not Gera uma negação lógica.

Eqv Realiza uma equivalência lógica. Retorna True se as duas expressões forem verdadeiras ou falsas, caso contrário, retorna False.

Xor Realiza uma exclusão lógica. Retorna True se apenas uma expressão for verdadeira, caso contrário, retorna False.

Page 14: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Operadores de Concatenação

Operador Descrição

& Concatena textos.

+ Concatena textos.

Page 15: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Estruturas Condicionais

A estrutura If é utilizada para executar uma instrução dependendo do resultado de uma expressão.

If ... Then ... Else

1.If Condição Then

2. Grupo_de_instruções_If

3.Else

4. Grupo_de_instruções_Else

5.Enf If

Page 16: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Estruturas Condicionais

If ... Then ... ElseIf ... Then ... Else

1. If Condição 1 Then

2. Grupo_de_instruções_If

3. ElseIf Condição 2 Then

4. Grupo_de_instruções_If

5. Else

6. Grupo_de_instruções_Else

7. End If

Page 17: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Estruturas Condicionais

A estrutura Select Case executa um dos diversos grupos de instruções dependendo do valor de uma expressão.

Select Case

1. Select Case Expressão

2. Case Is Valor 1

3. Grupo_de_instruções_1

4. Case Is Valor 2

5. Grupo_de_instruções_2

6. Case Else

7. Grupo_de_instruções_Else

8. End Select

Page 18: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Caixas de Diálogo

A função InputBox é utilizada quando o programa necessita de uma informação do usuário. Neste caso, a caixa de diálogo é exibida com um campo de texto onde o usuário irá digitar a informação que será processada.

Função InputBox

1. InputBox (Prompt, Title, Default, Xpos, Ypos, Helpfile, Context)

Prompt: É o texto da mensagem.

Title: É o título da caixa de mensagem.

Default: É o texto exibido quando a caixa for carregada.

Xpos: é o número referente à posição horizontal da caixa de mensagem.

Ypos: É o número referente à posição vertical da caixa de mensagem.

Helpfile: Identifica o arquivo de ajuda.

Context: É o número de contexto da ajuda e é fornecido quando o Helpfile for especificado.

Page 19: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Caixas de Diálogo

A função MsgBox é utilizada para enviar mensagens ao usuário. Essas mensagens ao usuário. Essas mensagens podem conter

Função MsgBox

1. MsgBox (Prompt, Buttons, Title, Helpfile, Context)

Prompt: É o texto do corpo da mensagem.

Buttons: Botões que são exibidos.

Title: É texto da barra de título.

Helpfile: Identifica o arquivo de ajuda, se houver.

Context: É o numero de contexto da ajuda quando houver HelpFile.

Page 20: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Operadores de Concatenação

Função MsgBox Buttons: veja a seguir os valores possíveis para este argumento.

Constante Valor Descrição

vbOKOnly 1 Exibe apenas o botão OK.

vbOKCancel 2 Exibe os botões OK.

vbAbortRetryIgnore 3 Exibe os botões Anular, Repetir e Ignorar.

vbYesNoCancel 4 Exibe os botões Sim, Não e Cancelar.

vbCritical 16 Exibe o ícone Mensagem Crítica.

vbQuestion 32 Exibe o ícone Consulta de Aviso.

vbExclamation 48 Exibe o ícone Mensagem de Aviso.

vbInformation 64 Exibe o ícone Mensagem de Informação.

Page 21: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Operadores de Concatenação

Função MsgBox Buttons: veja a seguir os valores possíveis para este argumento.

Constante Valor Descrição

vbDesaultButton1 0 O primeiro botão é padrão.

vbDesaultButton2 256 O segundo botão é padrão.

vbDesaultButton3 512 O terceiro botão é padrão.

vbDesaultButton4 768 O quarto botão é padrão.

vbApplicationModal 0 Janela do aplicativo. O usuário deve responder a mensagem antes de continuar o trabalho no aplicativo atual.

vbSystemModal 4096 Janela do sistema. Todos os aplicativos ficam suspensos até o usuário responder a mensagem.

Page 22: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Operadores de Concatenação

Função MsgBox Buttons: veja a seguir os valores possíveis para este argumento.

Constante Valor Descrição

vbMsgBoxHelpButon 16384 Insere o botão Help na caixa de mensagem.

vbMsgBoxSetForeground 65536 Especifica que a caixa de mensagem ficará em primeiro plano.

vbMsgBoxRight 524288 Alinha o texto à direita.

vbMsgBoxRtlReading 1048576 Especifica que o texto deve aparecer como leitura da direita para a esquerda em sistemas hebraico e árabe,

Page 23: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Operadores de Concatenação

Função MsgBox Buttons: suas opções de argumento podem ser divididas em quadro grupos:

1. O primeiro grupo determina os botões que serão exibidos na caixa de diálogo.

2. O segundo grupo descreve o estilo do ícone que será exibido na caixa de diálogo.

3. O terceiro grupo determina qual o botão é o padrão.

4. O quarto grupo determina a modalidade da caixa de diálogo.

*Insira apenas uma opção de cada grupo no argumento Buttons.

Page 24: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Operadores de Concatenação

Função MsgBox Exemplo: Mensagem de Informação

1. MsgBox (“Erro ao cafastrar o produto.”, vbCritical, “Falha”)

Exemplo: Mensagem de Decisão

1. MsgBox (“Erro ao cadastrar o produto.”, vbYesNo + vbDefaultButton2, “Confirmar”)

Constante Valor

vbOK 1

vbCancel 2

vbAbort 3

vbRetry 4

vbIgnore 5

vbYes 6

vbNo 7

Observe que no argumento Buttons foi utilizada duas

opções. Neste caso é utilizado o sinal de adição entre

elas.

Para que uma ação seja executada de acordo com a

escolha feita na caixa de diálogo é preciso saber o valor

de retorno de cada botão.

Page 25: Excel VBA: Aula 8

prof. Gustavo Zimmermann | [email protected]

Excel VBA – Visual Basic

Operadores de Concatenação

Função MsgBox Formatação: Quebrando Linhas

1. MsgBox (“O arquivo ainda não foi salvo” & vbCrLf & “Deseja salvá-lo?”, vbYesNo)