簡體   English   中英

從Internet添加圖像到VBA圖像控件

[英]Adding Images from Internet into VBA Image Control

我很難弄清楚如何將鏈接中的圖像添加到VBA圖像控件中。

我可以使用以下內容將圖像帶入VBA:

Sheets("Elk").Shapes.AddPicture "http://images.summitpost.org/original/562016.jpg", msoFalse, msoTrue, 200, 200, 800, 700

這會將圖片填充到工作表中,但現在我希望能夠將其放入圖像控件中。

這是一項可行的任務嗎?

您無法將URL添加到ActiveX Image Control(我想這是您正在使用的URL),您必須先將圖像保存在HDD上。

您可以使用標准的Windows動態鏈接庫urlmon對於這一點,你應該把它聲明的URLDownloadToFile您模塊頂部功能。

選擇任何HDD上的臨時文件夾以下載圖像,然后將其分配給圖像控件,最后刪除該文件。

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



Private Sub Testit()
    Image_Download "http://images.summitpost.org/original/562016.jpg"
End Sub 

Private Sub Image_Download(strImgURL As String)  

        Dim lngRC As Long

        strTempFile = "C:\temp\anyfilename.jpg"

        lngRC = URLDownloadToFile(0, strImgURL, strTempFile, 0, 0)

        If ret Then
            MsgBox "The image download failed", vbExclamation

        Else

          MyImageControl.Picture = LoadPicture(strTempFile)
          Kill strTempFile  

        End If

End Sub

注意圖像格式。 這只有在你繼續使用JPG時才有效。 如果您打算下載GIF或PNG,則必須相應地調整tempfile擴展名。

這個MrExcel.com 主題提供了您正在尋找的答案。 基本上有一種方法是通過使用“LoadPicture(文件路徑)”方法在運行時將圖像分配給圖像控件。 不幸的是,它不會將URL作為文件路徑。 如果圖片在本地或共享驅動器中“LoadPicture”將是要走的路。 抱歉...

LoadPicture()方法示例:

'Having that "Image1" is the name of the Image Control
Image1.Picture = LoadPicture("here the path to your picture")  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM