繁体   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