[英]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.