Страницы: 1
RSS
Загрузка изображений из интернета
 
Здравствуйте, нужна помощь. Ситуация следующая: Через VBA загружаю с сайта картинку и сохраняю её с расширением  *.bmp, но когда пытаюсь вывести эту картинку на форму (через Image) появляется ошибка "Invalid picture"...но если я вручную открываю эту картинку(напр. в Paint) и делаю след.: "Сохранить как..."  -> "изображение в формате *.bmp ", то он начинает её узнавать и выводит на форму! То есть,как я понимаю, при загрузке картинка загружается не в формате *.bmp, хотя расширение у неё *.bmp... Картинок много и они меняются так что делать это вручную не вариант...Может кто подскажет решение...вот ссылка на картинку(http://elite.finviz.com/chart.ashx?t=AAPL&ty=c&ta=st_c,sch_200p&p=d&s=l)   Спасибо
 
Картинка имеет формат PNG (в браузере скачайте файл - увидите имя файла chart.png)
Какое вы расширение даёте файлу при скачивании - значения не имеет (формат картинки от этого не меняется)
Элементы управления VBA не поддерживают отображение картинок формата PNG (но можно воткнуть на форму браузер - он покажет вашу PNG, даже без скачивания, - браузеру подсовываете URL, и он отображает картинку. всего одна строка кода)
 
Нашел решение проблемы след.образом: просто открываю каждую картинку в Excel, а потом сохраняю её как *.gif-файл... может кому-то поможет:
Код
Sub Save_Sel_Object_As_Picture() Dim sName As String, oObj As Object, wsTmpSh As Worksheet 
If VarType(Selection) <> vbObject Then 
MsgBox "Выделенная область не является объектом!", vbCritical, "www.excel-vba.ru" 
Exit Sub 
End If 
Application.ScreenUpdating = False 
Application.DisplayAlerts = False 
Set oObj = Selection: oObj.Copy 
Set wsTmpSh = ThisWorkbook.Sheets.Add 
sName = ActiveWorkbook.FullName & "_" & ActiveSheet.Name & "_" & oObj.Name 
With wsTmpSh.ChartObjects.Add(0, 0, oObj.Width, oObj.Height).Chart 
.ChartArea.Border.LineStyle = 0 
.Paste 
.Export Filename:=sName & ".gif", FilterName:="GIF" 
.Parent.Delete 
End With 
wsTmpSh.Delete 
Application.ScreenUpdating = True 
Application.DisplayAlerts = True 
End Sub
 
Игорь, приведите, пожалуйста, пример кода о котором Вы говорите("...воткнуть на форму браузер"). Спасибо
Страницы: 1
Читают тему
Наверх