Ir ao conteúdo
  • Cadastre-se

Carregar imagem externa (internet) via VBA


Ir à solução Resolvido por Wendell Menezes,

Posts recomendados

Boa noite pessoal!

 

Tenho um formulário no excel e dentro dele, um "CommandButton" e um "Image"

 

Quando pressiono o botão, ele precisa inserir uma imagem da web. Caso a imagem estivesse alocada no meu computador, usaria o seguinte comando:

Private Sub CommandButton1_Click()    Me.Image1.Picture = LoadPicture("D:\Pictures\download.jpg")    Me.Image1.PictureSizeMode = fmPictureSizeModeStretch    End Sub

Porém, ao tentar trocar o endereço da imagem, por exemplo, para: 

 

http://4.bp.blogspot.com/-ip8cbE5P7tk/VG5k4L-Jj-I/AAAAAAAACwU/dDG33T29Utg/s1600/Praia.jpg

 

Tendo:

Private Sub CommandButton1_Click()    Me.Image1.Picture = LoadPicture("http://4.bp.blogspot.com/-ip8cbE5P7tk/VG5k4L-Jj-I/AAAAAAAACwU/dDG33T29Utg/s1600/Praia.jpg")    Me.Image1.PictureSizeMode = fmPictureSizeModeStretch    End Sub

Me é retornado o erro '75':

"Erro de acesso a caminho/arquivo"

 

Existe outra maneira de executar esse procedimento? Algum API?

 

Grato!

Link para o comentário
Compartilhar em outros sites

  • Solução

Boa noite,

 

Sim, existe essa API que precisa ser declarada dentro do seu formulário:

Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As LongPtr, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Exemplo de utilização em um form que possui apenas um button e uma image:

Private Sub CommandButton1_Click()Dim r As LongDim URL As String, File As StringURL = "http://4.bp.blogspot.com/-ip8cbE5P7tk/VG5k4L-Jj-I/AAAAAAAACwU/dDG33T29Utg/s1600/Praia.jpg"File = "C:\Users\Wendell\Desktop\Praia.jpg"r = URLDownloadToFile(0, URL, File, 0, 0)Me.Image1.Picture = LoadPicture(File)End Sub
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

Basta inserir esse código no seu formulário:

Option Explicit

Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As LongPtr, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Private Sub CommandButton1_Click()
Dim r As Long
Dim URL As String, File As String
URL = "http://www.ilhabela.com.br/wp-content/uploads/2012/11/praia_portinho.jpg" 'Link da imagem
File = "D:\Desktop\Praia.jpg" 'Local onde será salvo o download da foto (link)
r = URLDownloadToFile(0, URL, File, 0, 0)
Me.Image1.Picture = LoadPicture(File)
End Sub

Lembre-se de alterar o local onde será salvo a foto requisitada (quarta linha de baixo para cima)

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...