Вам нужно будет вызвать API на URLDownloadToFile
, чтобы загрузить изображение.В приведенном ниже примере мы будем загружать во временную папку C:\Temp\
.
. Как только ваше изображение будет загружено, вы создадите новый объект Shell и в конечном итоге будете использовать свойство .ExtendedProperty()
, чтобы получить размеры вашего файла
После завершения загрузки файла вы можете удалить временный файл, используя Kill()
.
В приведенном ниже методе используется Раннее связывание .Вам нужно будет установить ссылку на
Microsoft Shell Controls And Automation
Перейдя на Tools -> References
в меню VBE
Option Explicit
#If VBA7 Then
Declare PtrSafe 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
#Else
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
#End If
Sub test()
Const tmpDir$ = "C:\Temp\"
Const tmpFile$ = "tmpPicFile.jpg"
Debug.Print URLDownloadToFile(0, ActiveSheet.Range("A2").Value, tmpDir & tmpFile, 0, 0)
ActiveSheet.Range("B2").Value = getFileDimensions(tmpDir, tmpFile)
Kill tmpDir & tmpFile
End Sub
Private Function getFileDimensions(filePath$, fileName$) As String
With New Shell32.Shell
With .Namespace(filePath).ParseName(fileName)
getFileDimensions = .ExtendedProperty("Dimensions")
End With
End With
End Function