Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/загрузка картинок с сайта с протоколом https - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » загрузка картинок с сайта с протоколом https (Макросы/Sub)
загрузка картинок с сайта с протоколом https
sboy Дата: Среда, 23.11.2016, 13:24 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 48 ±
Замечаний: 0% ±

Excel 2007
Добрый день.
Есть макрос, который загружал картинки с сайта по ссылкам вида "http://www.*"
[vba]
Код
Sub ВставитьКартинку(ByRef PicRange As Range, ByVal PicPath As String)
     On Error Resume Next
     Application.ScreenUpdating = False
     Dim ph As Picture
     Set ph = PicRange.Parent.Pictures.Insert(PicPath)
     ph.Top = PicRange.Top + 1: ph.Left = PicRange.Left + 5
     ph.Placement = xlMoveAndSize
End Sub
[/vba]
Но сайт откуда успешно грузились картинки стал с протоколом https и картинки не грузятся.
Возможно ли как-то обойти? как я понял буква s - означает шифрование данных, хотя в браузере по ссылке картинку выдает
 
Ответить
СообщениеДобрый день.
Есть макрос, который загружал картинки с сайта по ссылкам вида "http://www.*"
[vba]
Код
Sub ВставитьКартинку(ByRef PicRange As Range, ByVal PicPath As String)
     On Error Resume Next
     Application.ScreenUpdating = False
     Dim ph As Picture
     Set ph = PicRange.Parent.Pictures.Insert(PicPath)
     ph.Top = PicRange.Top + 1: ph.Left = PicRange.Left + 5
     ph.Placement = xlMoveAndSize
End Sub
[/vba]
Но сайт откуда успешно грузились картинки стал с протоколом https и картинки не грузятся.
Возможно ли как-то обойти? как я понял буква s - означает шифрование данных, хотя в браузере по ссылке картинку выдает

Автор - sboy
Дата добавления - 23.11.2016 в 13:24
_Boroda_ Дата: Среда, 23.11.2016, 13:34 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 9347
Репутация: 3922 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПосмотрите, можетпоможет
http://www.cyberforum.ru/vba/thread1656819.html
http://excelvba.ru/programmes/Parser

Автор - _Boroda_
Дата добавления - 23.11.2016 в 13:34
SLAVICK Дата: Среда, 23.11.2016, 14:23 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 1834
Репутация: 613 ±
Замечаний: 0% ±

2007,2010,2013,2016
https и картинки не грузятся

а если сначала сохранить ее на комп а потом в книгу?:
[vba]
Код
#If Win64 Then
    #If VBA7 Then    ' Windows x64, Office 2010
        Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
                (ByVal pCaller As LongLong, ByVal szURL As String, ByVal szFileName As String, _
                 ByVal dwReserved As LongLong, ByVal lpfnCB As LongLong) As LongLong
    #Else    ' Windows x64,Office 2003-2007
        Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
                    (ByVal pCaller As LongLong, ByVal szURL As String, ByVal szFileName As String, _
                    ByVal dwReserved As LongLong, ByVal lpfnCB As LongLong) As LongLong
    #End If
#Else
    #If VBA7 Then    ' Windows x86, Office 2010
        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    ' Windows x86, Office 2003-2007
        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
#End If

Sub d()
    Dim PicRange As Range, PicPath$, PicUrl$
        Set PicRange = Selection
        PicUrl = "https://mdata.yandex.net/i?path=b1204070811_img_id8957096532163503439.jpeg&size=5"
        PicPath = ActiveWorkbook.Path & "\TempImage"
        DownloadFile PicUrl, PicPath
        ВставитьКартинку PicRange, PicPath
        Kill PicPath
End Sub
Sub ВставитьКартинку(ByRef PicRange As Range, ByVal PicPath As String)
    On Error Resume Next
    Application.ScreenUpdating = False
    Dim ph As Picture
    Set ph = PicRange.Parent.Pictures.Insert(PicPath)
    ph.Top = PicRange.Top + 1: ph.Left = PicRange.Left + 5
    ph.Placement = xlMoveAndSize
End Sub
Function DownloadFile(url As String, FileName As String)
DownloadFile = URLDownloadToFile(0, url, FileName, 0, 0)
End Function
[/vba]
так и пошустрее будет :D
К сообщению приложен файл: insertPicFromUr.xls(40Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
https и картинки не грузятся

а если сначала сохранить ее на комп а потом в книгу?:
[vba]
Код
#If Win64 Then
    #If VBA7 Then    ' Windows x64, Office 2010
        Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
                (ByVal pCaller As LongLong, ByVal szURL As String, ByVal szFileName As String, _
                 ByVal dwReserved As LongLong, ByVal lpfnCB As LongLong) As LongLong
    #Else    ' Windows x64,Office 2003-2007
        Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
                    (ByVal pCaller As LongLong, ByVal szURL As String, ByVal szFileName As String, _
                    ByVal dwReserved As LongLong, ByVal lpfnCB As LongLong) As LongLong
    #End If
#Else
    #If VBA7 Then    ' Windows x86, Office 2010
        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    ' Windows x86, Office 2003-2007
        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
#End If

Sub d()
    Dim PicRange As Range, PicPath$, PicUrl$
        Set PicRange = Selection
        PicUrl = "https://mdata.yandex.net/i?path=b1204070811_img_id8957096532163503439.jpeg&size=5"
        PicPath = ActiveWorkbook.Path & "\TempImage"
        DownloadFile PicUrl, PicPath
        ВставитьКартинку PicRange, PicPath
        Kill PicPath
End Sub
Sub ВставитьКартинку(ByRef PicRange As Range, ByVal PicPath As String)
    On Error Resume Next
    Application.ScreenUpdating = False
    Dim ph As Picture
    Set ph = PicRange.Parent.Pictures.Insert(PicPath)
    ph.Top = PicRange.Top + 1: ph.Left = PicRange.Left + 5
    ph.Placement = xlMoveAndSize
End Sub
Function DownloadFile(url As String, FileName As String)
DownloadFile = URLDownloadToFile(0, url, FileName, 0, 0)
End Function
[/vba]
так и пошустрее будет :D

Автор - SLAVICK
Дата добавления - 23.11.2016 в 14:23
sboy Дата: Среда, 23.11.2016, 15:07 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 48 ±
Замечаний: 0% ±

Excel 2007
SLAVICK, с вашей ссылкой работает, а с моей нет(
вот эту, например, не грузит https://www.evisun.ru/compone....422.jpg
 
Ответить
СообщениеSLAVICK, с вашей ссылкой работает, а с моей нет(
вот эту, например, не грузит https://www.evisun.ru/compone....422.jpg

Автор - sboy
Дата добавления - 23.11.2016 в 15:07
SLAVICK Дата: Среда, 23.11.2016, 15:19 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 1834
Репутация: 613 ±
Замечаний: 0% ±

2007,2010,2013,2016
а с моей нет(

а что выдает - ошибку или просто пустоту?
Проверил - у меня и с этой работает.
К сообщению приложен файл: 4186417.xls(40Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
а с моей нет(

а что выдает - ошибку или просто пустоту?
Проверил - у меня и с этой работает.

Автор - SLAVICK
Дата добавления - 23.11.2016 в 15:19
sboy Дата: Среда, 23.11.2016, 15:48 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 48 ±
Замечаний: 0% ±

Excel 2007
SLAVICK, выдает ошибку 53 File not found в строке [vba]
Код
Kill PicPath
[/vba]
пошагово смотрел, ph выдает Nothing
 
Ответить
СообщениеSLAVICK, выдает ошибку 53 File not found в строке [vba]
Код
Kill PicPath
[/vba]
пошагово смотрел, ph выдает Nothing

Автор - sboy
Дата добавления - 23.11.2016 в 15:48
sboy Дата: Среда, 23.11.2016, 16:15 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 48 ±
Замечаний: 0% ±

Excel 2007
Победил!
После одноразового запуска такой конструкции, выскочило окно с сертификатом сайта, после подтверждения, мой старый макрос стал работать.
[vba]
Код
Sub ВставитьКартинку(ByRef PicRange As Range, ByVal PicPath As String)
    On Error Resume Next: Application.ScreenUpdating = False
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    With oXMLHTTP
    .setOption "SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS", "SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS"
    .Open "GET", PicPath, False
    .send
    Dim ph As Picture: Set ph = PicRange.Parent.Pictures.Insert(PicPath)
    End With
  Set oXMLHTTP = Nothing
      ph.Top = PicRange.Top + 1: ph.Left = PicRange.Left + 5
    ph.Placement = xlMoveAndSize
End Sub
[/vba]
взято по ссылке от _Boroda_, спасибо
 
Ответить
СообщениеПобедил!
После одноразового запуска такой конструкции, выскочило окно с сертификатом сайта, после подтверждения, мой старый макрос стал работать.
[vba]
Код
Sub ВставитьКартинку(ByRef PicRange As Range, ByVal PicPath As String)
    On Error Resume Next: Application.ScreenUpdating = False
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    With oXMLHTTP
    .setOption "SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS", "SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS"
    .Open "GET", PicPath, False
    .send
    Dim ph As Picture: Set ph = PicRange.Parent.Pictures.Insert(PicPath)
    End With
  Set oXMLHTTP = Nothing
      ph.Top = PicRange.Top + 1: ph.Left = PicRange.Left + 5
    ph.Placement = xlMoveAndSize
End Sub
[/vba]
взято по ссылке от _Boroda_, спасибо

Автор - sboy
Дата добавления - 23.11.2016 в 16:15
sboy Дата: Среда, 23.11.2016, 16:46 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 48 ±
Замечаний: 0% ±

Excel 2007
так и пошустрее будет

прикрутил Вашу функцию, действительно работает шустрее) спасибо
 
Ответить
Сообщение
так и пошустрее будет

прикрутил Вашу функцию, действительно работает шустрее) спасибо

Автор - sboy
Дата добавления - 23.11.2016 в 16:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » загрузка картинок с сайта с протоколом https (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!