Здравствуйте, нужна помощь. Ситуация следующая: Через 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