Coletando informações
Num exemplo anterior, vimos que podemos usar variáveis nas caixas de mensagens. Mas para que isso seja realmente interessante, é necessário que seja possível coletar informações do usuário em variáveis. Isso será feito com as caixas de entrada, de acordo com o seguinte código:
Sub Pergunta_Nome()
Dim nomeUsuario
nomeUsuario = InputBox(prompt:="Qual o seu nome ?", Title:="Conhecendo o usuário...")
MsgBox ("Olá, " & nomeUsuario & Chr(10) & "Seja bem-vindo(a) à minha apresentação")
End Sub
[ DOWNLOAD ]
Como você vê no exemplo acima, a caixa de entrada de dados tem dois parâmetros: prompt, que é a pergunta a ser mostrada ao usuário; e Title, que é o título da caixa de entrada. O dado recolhido por essa caixa de entrada é gravado na variável nomeUsuario, por isso que essa variável está associada à caixa de entrada.
![Atenção!](atencao.gif) |
No exemplo acima, a variável nomeUsuario foi declarada dentro do sub-procedimento Pergunta_Nome, por isso só poderá ser usada dentro dessa rotina. E é isso que vemos no exemplo, pois o dado informado pelo usuário já é usado ali mesmo, mostrado com uma mensagem de saudação, mostrada na MsgBox.
Porém, se você quiser que o nome do usuário seja mostrado em outro sub-procedimento desse módulo, é necessário que a variável nomeUsuario seja declarada fora do sub-procedimento (Ex. Dim nomeUsuario, porém fora de Sub). Ainda, se você quiser que o nome do usuário seja usado em outro módulo, então a variável tem que ser declarada como pública (Ex. Public nomeUsuario). |
As caixas de mensagens, que vimos anteriormente, também podem coletar informações. Elas podem ser configuradas de maneira que apresentem mais de um botão de resposta. Assim, dependendo de qual botão o usuário clicar, uma resposta para uma questão estará sendo coletada.
A sintaxe completa das caixas de mensagem é: MsgBox(prompt[, buttons] [, title] [, helpfile, context]), onde prompt é a mensagem, buttons é o tipo de botões, title é o título da caixa, helpfile é o endereço de um arquivo de ajuda e context é o contexto em que a ajuda será oferecida. Como nesse caso a caixa de mensagem está coletando informações, ela deve ser associada a uma variável, que irá gravar o dado coletado. Observe o código abaixo:
Sub Deseja_Continuar()
Dim Resposta
Resposta = MsgBox("Você deseja continuar?", VbYesNo, "A L E R T A")
End Sub
[ DOWNLOAD ]
Nesse exemplo, a resposta da pergunta pode ser "Sim" ou "Não" e será gravada na variável Resposta. Assim, dependendo da resposta do seu usuário, você pode dar um feedback ainda mais elaborado. As opções possíveis de botões (buttons) são:
- VbOKOnly. Exibe somente o botão OK.
- VbOKCancel. Exibe os botões OK e Cancelar.
- VbAbortRetryIgnore. Exibe os botões Abortar, Repetir e Ignorar.
- VbYesNoCancel. Exibe os botões Sim, Não e Cancelar.
- VbYesNo. Exibe os botões Sim e Não.
- VbRetryCancel. Exibe os botões Repetir e Cancelar.
Além de botões de resposta, também é possível personalizarmos a caixa de mensagem, transformando-a em uma caixa de alerta, por exemplo. Observe outros possíveis valores para o parâmetro buttons da caixa de mensagem pode receber:
- vbCritical. Exibe um ícone de mensagem crítica.
- vbQuestion. Exibe um ícone de consulta de aviso.
- vbExclamation. Exibe um ícone de mensagem de aviso.
- vbInformation. Exibe um ícone de mensagem de informação.
Um exemplo de caixa de mensagem personalizada seria:
Sub Mensagem_Critica()
Resposta = MsgBox("Você deseja continuar?", vbAbortRetryIgnore + vbCritical, "Mensagem Crítica")
End Sub
[ DOWNLOAD ]
[ CRÉDITOS ] |