Upload
gustavo-zimmermann
View
369
Download
4
Embed Size (px)
DESCRIPTION
Curso de Excel VBA no Senac Santa Maria
EXCEL VBA (aula 8) Visual Basic prof. Gustavo Zimmermann
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)
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)
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
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.
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:
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
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:
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
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
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
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.
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.
prof. Gustavo Zimmermann | [email protected]
Excel VBA – Visual Basic
Operadores de Concatenação
Operador Descrição
& Concatena textos.
+ Concatena textos.
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
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
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
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.
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.
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.
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.
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,
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.
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.
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)