VBA – Carregando uma Imagem no UserForm

Está aí uma dúvida mais comum do que esperava. Carregar uma imagem num UserForm (ou planilha se preferir)? Siga os passos abaixo:

Abra o VBA (Alt+F11 com o Excel aberto)

Insira um UserForm:

Insira um UserForm
Insira um UserForm

Insira um controle de imagem no UserForm:

Insira um controle de imagem no UserForm
Insira um controle de imagem no UserForm

Arraste um botão de comando logo abaixo da Imagem:

Arraste um botão de comando logo abaixo da Imagem
Arraste um botão de comando logo abaixo da Imagem

Selecione o botão e na caixa de propriedades (clique em F4 se ela não estiver aparecendo), mude o texto do botão (Caption):

Selecione o botão e na caixa de propriedades mude o texto do botão
Selecione o botão e na caixa de propriedades mude o texto do botão

Clique duas vezes no botão para gerar o evento de Click:

Clique duas vezes no botão para gerar o evento de Click
Clique duas vezes no botão para gerar o evento de Click

E finalmente, o código:

Private Sub CommandButton1_Click()
    caminhoArquivo = Application.GetOpenFilename(FileFilter:="Image Files(*.jpg), *.jpg")
    Me.Image1.Picture = LoadPicture(caminhoArquivo)
End Sub

Execute o UserForm clicando em F5 e ao clicar no botão “Buscar Imagem”, você será apresentado a uma tela de escolha de arquivo como essa (já filtrando por arquivos de imagem. Reparei no filtro feito no código na linha 2):

Selecionando sua imagem
Selecionando sua imagem

Após selecionar a imagem, o resultado será parecido com este:

O resultado
O resultado

O mais atentos saberão que o código contém um bug. Se quiser saber a resposta, veja este link.

Arquivo: Carregar_Imagem_UserForm

Em vídeo!

Bom proveito!

VBA – Ocultando o navegador no Selenium

Eis um recurso amplamente solicitado pela comunidade que as empresas detentoras dos navegadores (com excessão do IE e Edge) acabaram por disponibilizar, que é a habilidade de ocultar o navegador durante a execução do seu script executando Selenium. E a linha de código para tal é simples:

driver.AddArgument ("--headless")

A linha acima funcionará perfeitamente no Chrome e Firefox. Abaixo o código mais completo:

Dim driver As WebDriver
    Sub Teste()
    Set driver = New ChromeDriver
 
    driver.AddArgument ("--headless")
 
    driver.Get "https://www.dolarhoje.com"
 
    Dim valor As String
    valor = driver.FindElementById("nacional").Value
 
    driver.Quit
    MsgBox valor
End Sub

E como não poderia faltar: