Blog

Postado em em 25 de setembro de 2021

Tela no VBA para Seus Códigos – Como Criar?

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.

Tela no VBA para seus Códigos

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)

Tela no VBA para seus Códigos


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)

Tela no VBA para seus Códigos

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?


Quer participar do maior evento de Power BI da América Latina de forma 100% Online e Gratuita? Inscreva-se abaixo!