segunda-feira, 25 de agosto de 2014

Constantes e InputBox e MsgBox


Constantes 

O que são constantes ? 

Constantes são valores que não alteram durante a execução de uma rotina. São declaradas da mesma forma que as variáveis, a única diferença reside no facto da atribuição ser feita na mesma instrução da declaração, e só poder ser feita uma única vez. 

Const <Nome_Constante> As <Tipo> = <Valor>
Const <Nome_Constante> As <Tipo> = <Expressão de cálculo>

 
InputBox e MsgBox
 

O que são ? 

Para haver interacção entre o utilizador e uma macro ou programa é necessário que exista um interface de comunicação. Este poderá ser mais ou menos complexo e completo, contudo existem dois elementos básicos para estabelecer esta ligação: InputBox e MsgBox.

Neste contexto a InputBox é uma função que permite ao utilizador introduzir dados no programa – é portanto um mecanismo de input. O MsgBox é um mecanismo de Output e permite ao utilizador visualizar os dados produzidos pelo programa.

 
InputBox

 

O que faz… 

1.         Exibe no écran uma janela com uma caixa – text box –  para a inserção de dados.
2.         Espera que o utilizador introduza os dados e/ou accione um dos botões.
3.         Como é uma função produz um valor final. Este consiste nos dados inseridos pelo utilizador na forma textual -  String.

 
Sintaxe

 
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
 

Numa primeira avaliação da função, pode-se dizer que a mesma possui diversos parâmetros, mas somente o primeiro é obrigatório, sendo que todos os outros quando ignorados assumem valores atribuídos por defeito.

 
Parâmetros

Parâmetro
Comentário
 
Prompt
(Obrigatório )
Expressão textual exibida como mensagem na janela de input.
A dimensão máxima é de 1024 caracteres.
Se se pretender construir uma mensagem com mais do que uma linha poderá utilizar o caractere Enter - Chr(13). A junção dos elementos que constituem a mensagem é realizada através do operador &.
 
Exemplo:
"A Soma de  3 com 5 é :" & Chr(13) & " 8 "
 
Title
(Facultativo)
Titulo da janela de input. Se este for omitido, aparecerá por defeito o nome da aplicação.
 
Default
(Facultativo)
Expressão inserida por defeito na caixa de inserção de dados e constituirá a resposta por defeito se o utilizador não introduzir outra.
Se este parâmetro for omitido aparecerá uma text box vazia.
 
Xpos
(Facultativo)
Número que identifica a distância horizontal entre o lado esquerdo do écran e a janela de input. Se este valor for omitido a janela aparecerá centrada horizontalmente.
 
Ypos
(Facultativo)
Número que identifica a distância vertical entre o lado superior do écran e a janela de input. Se este valor for omitido a janela ficará posicionada a 1/3 da parte inferior do écran
 
HelpFile
(Facultativo)
Nome do ficheiro de Help que será utilizado para dar apoio ao preenchimento desta janela. Se for indicado este parâmetro o seguinte é obrigatório.
 
Context
(Facultativo)
Número do índice do tópico de Help constante no ficheiro HelpFile, e que corresponde à janela em questão.
 

 
Atenção: Se pretender enviar mais que um parâmetro optativo respeite a ordem através de “,” (virgulas)


Exemplo:


InputBox(“Introduza o Nome da Aplicação:”, , “Excel”)

InputBox(“Introduza o Nome da Aplicação:”, , “Excel”)

Na janela de input será exibida a mensagem “Introduza o Nome da Aplicação:”, o título da caixa será o definido por defeito e o valor na caixa de inserção será “Excel”.


MsgBox


O que faz…


1.         Exibe no écran uma janela com uma mensagem.
2.         Espera que o utilizador accione um dos botões.
3.         Como é uma função produz um valor final. Devolve um número inteiro indicando o botão que foi clicado.

Sintaxe


MsgBox(prompt[, buttons] [, title] [, helpfile, context])


À semelhança da InputBox , pode-se dizer que a mesma possui diversos parâmetros, mas somente o primeiro é obrigatório, sendo que todos os outros quando ignorados assumem valores atribuídos por defeito.

Parâmetros


Parâmetro
Comentário
 
Prompt
(Obrigatório )
Expressão textual exibida como mensagem na janela de input.
A dimensão máxima é de 1024 caracteres.
Se se pretender construir uma mensagem com mais do que uma linha poderá utilizar o caractere Enter Chr(13)
 
Exemplo:
"A Soma de  3 com 5 é :" & Chr(13) & " 8 "
 
Buttons
(Facultativo)
Número que identifica o tipo de botões que se pretende visualizar na janela de output. Ver tabela seguinte.
Se for omitido assumirá o valor 0 por defeito.
 
Title
(Facultativo)
Titulo da janela de input. Se este for omitido, aparecerá por defeito o nome da aplicação.
 
HelpFile
(Facultativo)
Nome do ficheiro de Help que será utilizado para dar apoio ao preenchimento desta janela. Se for indicado este parâmetro o seguinte é obrigatório.
 
Context
(Facultativo)
Número do índice do tópico de Help constante no ficheiro HelpFile, e que corresponde à janela em questão.
 

 

Atenção: Se pretender enviar mais que um parâmetro optativo respeite a ordem através de “,” (virgulas)

 
Exemplo:

MsgBox(“Erro de Sintaxe !!!”, , “Mensagem de Erro”)

Na janela de output será exibida a mensagem “Erro de Sintaxe”, o botão exibido será o de OK (por defeito) e o titulo da janela será “Mensagem de Erro”.
 

Constante de VBA
Valor
Descrição
 
VbOKOnly
0
Exibe somente o botão de OK.
VbOKCancel
1
Exibe os botões OK e Cancel.
VbAbortRetryIgnore
2
Exibe os botões Abort, Retry, e Ignore.
VbYesNoCancel
3
Exibe os botões Yes, No, e Cancel .
VbYesNo
4
Exibe os botões Yes e No.
VbRetryCancel
5
Exibe os botões Retry e Cancel.
VbCritical
16
Exibe o ícone de Critical Message.
VbQuestion
32
Exibe o ícone de Warning Query.
VbExclamation
48
Exibe o ícone de Warning Message.
VbInformation
64
Exibe o ícone de Information Message.
VbDefaultButton1
0
O primeiro botão é o seleccionado por defeito.
VbDefaultButton2
256
O segundo botão é o seleccionado por defeito.
VbDefaultButton3
512
O terceiro botão é o seleccionado por defeito.
VbDefaultButton4
768
O quarto botão é o seleccionado por defeito.
VbApplicationModal
0
Application modal – o utilizador só depois de responder à MsgBox é que poderá dar continuidade ao trabalho na aplicação corrente.
VbSystemModal
4096
System modal -  – o utilizador só depois de responder à MsgBox é que poderá dar continuidade ao trabalho em qualquer aplicação em curso no sistema.

 
Pela análise desta tabela poderá constatar que existem diferentes agrupamentos de códigos: para definir o tipo de botões (0-5), para definir o tipo de ícones (16,32,48,64), para definir o botão seleccionado por defeito (0,256,512,768) e para indicar o modo de execução (0 e 4096). Poderá adicionar os códigos e assim fazer combinações entre diversas opções destes 4 grupos, contudo nunca deverá adicionar mais do que um código por agrupamento.


Na janela de input será exibida a mensagem “Introduza o Nome da Aplicação:”, o título da caixa será o definido por defeito e o valor na caixa de inserção será “Excel”.


 

MsgBox

 

O que faz…

1.         Exibe no écran uma janela com uma mensagem.
2.         Espera que o utilizador accione um dos botões.
3.         Como é uma função produz um valor final. Devolve um número inteiro indicando o botão que foi clicado.
 

Sintaxe

 MsgBox(prompt[, buttons] [, title] [, helpfile, context])


À semelhança da InputBox , pode-se dizer que a mesma possui diversos parâmetros, mas somente o primeiro é obrigatório, sendo que todos os outros quando ignorados assumem valores atribuídos por defeito.

Exemplos:

 Para a instrução:

MsgBox "Erro de Sintaxe!!!", 2 + 48 + 512 + 4096, "Mensagem de Erro"

É exibida a seguinte janela:
 

  Figura 24 –MsgBox

 
Para a instrução:

MsgBox "Erro de Sintaxe!!!", 5 + 64 + 256  + 4096, "Mensagem de Erro"

É exibida a seguinte janela:


Figura 25 –MsgBox

 

 

Valores Produzidos…



Como já foi referido, a função MsgBox produz um valor em função do botão accionado, assim produzirá como output um dos valores constantes da tabela seguinte:

Constante de VBA
Valor
Botão Accionado
 
vbOK
1
OK
vbCancel
2
Cancel
vbAbort
3
Abort
vbRetry
4
Retry
vbIgnore
5
Ignore
vbYes
6
Yes
vbNo
7
No