Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Недоступно получение картинки из Excel / 3 сообщений из 3, страница 1 из 1
22.11.2019, 04:48
    #39892642
Alexsalog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недоступно получение картинки из Excel
Есть VBA скрипт в рамках Excel-макроса. Такой:

Код: vbnet
1.
Set oPic = oRng.Parent.Shapes.AddPicture(sURL, False, True, vLeft, vTop, PictureSize, PictureSize)


Где sURL - это запрос к google api. Конкретно, у меня sURL принимает значение:

Код: xml
1.
https://chart.googleapis.com/chart?chs=190x190&cht=qr&chl=ST00012|Name=%D0%9A%D0%93%D0%91%D0%A3+%D0%A5%D0%B0%D0%B1%D0%B0%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9+%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D0%B4%D0%BE%D0%BC+%D0%92%D0%B5%D1%82%D0%B5%D1%80%D0%B0%D0%BD%D0%BE%D0%B2+N+1|PersonalAcc=40601810000001000001|BankName=%D0%9E%D0%A2%D0%94%D0%95%D0%9B%D0%95%D0%9D%D0%98%D0%95+%D0%A5%D0%90%D0%91%D0%90%D0%A0%D0%9E%D0%92%D0%A1%D0%9A|BIC=040813001|CorrespAcc=00000000000000000000|PayeeINN=2722046417|KPP=272201001|persAcc=3-008|lastName=%D0%9A%D0%BE%D0%BD%D0%BE%D0%B2%D0%B0%D0%BB%D0%BE%D0%B2+%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9+%D0%94%D0%B0%D0%BD%D0%B8%D0%BB%D0%BE%D0%B2%D0%B8%D1%87|payerAddress=%D0%9F%D0%BE%D0%BA%D1%83%D1%81%D0%B0+22-8|CBC=00000000000000000130|OKTMO=08701000|Sum=201332|SERVICENAME=606|PaymPeriod=1119|



На моем компьютере этот макрос работает - в отчет выводятся qr-коды.

У клиента на компьютере, если в браузер вставить указанную строчку запроса - выведется картинка qr-кода.
Однако, если у клиента запустить макрос, то Excel дает ошибку 1004: Указанный файл не найден.

Общий диагноз такой - Excel не может обратиться в интернет напрямую.
Касперского отключали полностью - то же самое.
Предполагаю - где то в безопасности стоит какая-то галочка. Только где и какая. Как разрешить Excel обращаться к интернет сайту из макроса получать от него данные?
...
Рейтинг: 0 / 0
22.11.2019, 22:10
    #39893186
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недоступно получение картинки из Excel
Alexsalog,

а так ?
ActiveSheet.Pictures.Insert surl
...
Рейтинг: 0 / 0
27.11.2019, 22:03
    #39895274
ЦЦа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недоступно получение картинки из Excel
Alexsalog,

скачайте ответ сервера в локальный файл и делайте с ним что угодно.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Sub Test()
 Dim ws As Excel.Worksheet
 Dim xmlHttpReq As MSXML2.XMLHTTP60 'добавить библиотеку в References
 Dim Buffer() As Byte
 Dim nFile As Integer
 
 Dim fso As Scripting.FileSystemObject 'добавить библиотеку в References
 Dim sFileName As String
 Set fso = New Scripting.FileSystemObject
 sFileName = fso.GetSpecialFolder(TemporaryFolder) & "\" & fso.GetTempName & ".png"
 Set fso = Nothing
 
 Set xmlHttpReq = New MSXML2.XMLHTTP60
 
 With xmlHttpReq
    .Open "GET", "https://chart.googleapis.com/chart?chs=190x190&cht=qr&chl=ST00012|Name=%D0%9A%D0%93%D0%91%D0%A3+%D0%A5%D0%B0%D0%B1%D0%B0%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9+%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D0%B4%D0%BE%D0%BC+%D0%92%D0%B5%D1%82%D0%B5%D1%80%D0%B0%D0%BD%D0%BE%D0%B2+N+1|PersonalAcc=40601810000001000001|BankName=%D0%9E%D0%A2%D0%94%D0%95%D0%9B%D0%95%D0%9D%D0%98%D0%95+%D0%A5%D0%90%D0%91%D0%90%D0%A0%D0%9E%D0%92%D0%A1%D0%9A|BIC=040813001|CorrespAcc=00000000000000000000|PayeeINN=2722046417|KPP=272201001|persAcc=3-008|lastName=%D0%9A%D0%BE%D0%BD%D0%BE%D0%B2%D0%B0%D0%BB%D0%BE%D0%B2+%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9+%D0%94%D0%B0%D0%BD%D0%B8%D0%BB%D0%BE%D0%B2%D0%B8%D1%87|payerAddress=%D0%9F%D0%BE%D0%BA%D1%83%D1%81%D0%B0+22-8|CBC=00000000000000000130|OKTMO=08701000|Sum=201332|SERVICENAME=606|PaymPeriod=1119|", False
    .Send
    If .readyState <> 4 Or .Status <> 200 Then
        MsgBox "Error" & vbCrLf & "Ready State: " & _
               .readyState & vbCrLf & "Status: " & .Status
        Exit Sub
    End If
 
    'Save response stream to a local file
    nFile = FreeFile()
    Open sFileName For Output Access Write Lock Write As #nFile 'Truncate file length to zero
    Close #nFile
    Open sFileName For Binary Access Write Lock Write As #nFile
    Buffer = .responseBody
    Put #nFile, , Buffer
    Close #nFile
    Erase Buffer
    
    Set ws = Worksheets(1)
    ws.Shapes.AddPicture sFileName, msoFalse, msoTrue, 0, 0, -1, -1
    Kill sFileName
 End With
 End Sub
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Недоступно получение картинки из Excel / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]