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
Ícone VBAVBA Impressionador

Como automatizar praticamente qualquer tarefa repetitiva que você faça dentro do Excel. Aprenda a criar integrações do Excel com o PowerPoint, Word, Outlook e muito mais. Aprenda a criar automações para resolver tudo com apenas um clique em um botão. Tudo isso com uma única linguagem que junta todos esses programas.

Começar agoraSeta para a direita
Fundo VBATelas VBA

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)
Tela no VBA para seus Códigos

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?