Nessa aula eu quero te mostrar como criar uma tela no VBA para seus códigos em VBA, pois isso vai facilitar a utilização das suas macros!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Fala pessoal! Você quer saber como criar uma tela no VBA para deixar seus códigos mais dinâmicos e ter uma interação com usuário VBA?
Para criar essa tela vamos te mostrar nessa aula como criar formulário no VBA, que é um recurso muito interessante. Isso vai te ajudar a dar um visual mais agradável ao seu código e claro, melhora a interação com o usuário da planilha.
Você vai lidar com:
- rótulo no formulário VBA
- caixa de texto no formulário VBA
- botão de comando no formulário
- eventos no VBA
Esses são estruturas que você vai utilizar para criar o seu formulário e dar formato a ele, podendo escrever, colocar uma caixa para o usuário escrever e visualizar um resultado.
Os eventos no VBA vão permitir com que você faça uma automação, nesse caso vamos executar macro no formulário ao clicar em um botão.
Acompanhe com a gente a montagem do formulário.
UserForm
Para inserir um UserForm, iremos:
- Abrir o VBA (Alt+ (Fn+) F11)
- Guia Inserir
- UserForm
Um Userform (Formulário) padrão de nome UserForm1 será criado, como mostramos abaixo.
Iremos fazer as seguintes alterações de visual nas propriedades desse UserForm:
BackColor
- Mudar para cor Azul Escuro
Caption
- Colocar o texto “Pesquisador de Cotações de Moedas” no lugar do texto padrão “UserForm1”
Rótulo de Dados (Label)
Font
- Alterar o tamanho para 16 e colocar em negrito
ForeColor
- Entrar na propriedade e alterar a cor para: branca
Caption
- Iremos tirar o padrão “Label1” e colocar “Símbolo:”
Caixa de texto (TextBox)
Font
- Alterar o tamanho para 16
(Name)
- Iremos tirar o padrão “TextBox1” e colocar “caixaSimb”
Copiar formatos de rótulo e caixa de texto prontas
Vamos, nesse momento, já copiar o rótulo feito e a caixa de texto prontos mais duas vezes, para aproveitar os formatos.
Colaremos, e alteraremos o seguinte:
- Para o rótulo, mudaremos a propriedade Caption para respectivamente “Data:” e “Cotação:”, para o 2º e 3º rótulos do nosso formulário
- Para a caixa de texto, mudaremos a propriedade (Name) para respectivamente “caixaData” e “caixaCot”, para a 2ª e 3ª caixas de texto do nosso formulário
Botão de comando (commandbutton)
Font
- Alterar o tamanho para 16 e colocar em negrito
Caption
- Iremos tirar o padrão “CommandButton1” e colocar “Pesquisar”
Atrelando macro ao botão de comando “Pesquisar”
Para fazer o nosso botão ficar funcional, precisamos atrelar um evento a ele: o evento de click (clicar, em português).
Para isso:
- Daremos duplo clique no botão e o evento se abrirá automaticamente
- Copiaremos a macro pronta já localizada no Módulo 2
- Colaremos a macro, e faremos as alterações (em negrito), a fim que ela esteja ao final conforme abaixo:
Set objIE = CreateObject("InternetExplorer.Application")
'objIE.Visible = True
moedaCot = caixaSimb.Value
dataCot = Format(caixaData.Value, "mm-dd-yyyy")
linkCot = "https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoMoedaPeriodoFechamento(codigoMoeda='" _
& moedaCot & "',dataInicialCotacao='" & dataCot & "',dataFinalCotacao='" & dataCot & "')?$select=cotacaoCompra"
objIE.Navigate linkCot
Do While objIE.busy And objIE.readyState <> "READYSTATE_COMPLETE"
DoEvents
Loop
Application.Wait (Now + TimeValue("00:00:01"))
caixaCot.Value = CDbl(objIE.Document.getElementsByTagName("td")(0).innerText)
objIE.Quit
Set objIE = Nothing
Lembrando que a explicação desse código inteira e detalhadamente foi feita na aula em que ensinamos como extrair cotação de moedas na web com vba – [web scraping].
Resumidamente ele vai entrar no site apresentado no código, através de uma API (acrônimo em inglês que significa interface de programação de aplicações), buscar a cotação da moeda na data informada.
O resultado da moeda será exposto na terceira caixa, a caixaCot.
Conclusão da Tela no VBA para seus Códigos
Nessa aula você aprendeu a lidar com:
- Formulário no VBA (userform)
- rótulo no formulário VBA
- caixa de texto no formulário VBA
- botão de comando no formulário
- eventos no VBA
- macro para extrair cotações de moeda
Valeu, galera! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA, Excel e Power BI literalmente toda semana! Um abraço!
Hashtag Treinamentos
Para acessar outras publicações de VBA, clique aqui!
Quer aprender mais sobre VBA com um Minicurso Gratuito?
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.