Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Form.Image=LoadPicture(???)


Автор: АлексейБ 17.7.2006, 10:16
подскажите плиз.
у меня есть табл.с данными в Excel, и на этом листе находятся рисунки

я написал поиск, обработку данных и т.д. для вывода нужных результатов в форме
но, я не могу указать имя рисунка для вывода в форме

у меня получается только обращаться к рисунку как к файлу

Код

    foto = ActiveCell.Offset(0, 25) 'имя рисунка
    adr = ActiveWorkbook.Path
    
    DopForm.foto.Picture = LoadPicture(adr & "\im\" & foto)
 

Автор: mihanik 17.7.2006, 12:54
У меня такая идея.

Забрасываем нужный рисунок в буфер обмена

Код

    ActiveSheet.Shapes("ИМЯ_РИСУНКА").Select
    Selection.Copy


А уже из буфера получать рисунок и вставлять его на форму.
(Как это реализовать пока не думал, но наверняка так сделать можно...)
 

Автор: АлексейБ 18.7.2006, 12:35
Для записи графических данных в буфер используется функция SetData:

Clipboard.SetData Графический_объект, vbCFBitmap 

как указать Графический_объект, (рисунок находится на листе в Excel) 

Автор: mihanik 18.7.2006, 13:19
Цитата

как указать Графический_объект, (рисунок находится на листе в Excel)  


ActiveSheet.Shapes("ИМЯ_РИСУНКА").Select

 

Автор: АлексейБ 19.7.2006, 04:28
я уже указывал (ActiveSheet.Shapes("ИМЯ_РИСУНКА").Select

но на строке (Clipboard.SetData im_, vbCFBitmap), выдает ошибку object required
)
Код

im_ = ActiveSheet.Shapes("Picture 1")
Clipboard.SetData im_, vbCFBitmap

SavePicture Clipboard.GetData, "d:\mmm"
Clipboard.Clear

 

Автор: mihanik 19.7.2006, 08:09
Посмотри, что получилось у меня...

Код

Option Explicit

Private Sub Command1_Click()
Dim AppExcel As Excel.Application
Dim wBook As Workbook
Dim FileName As String

    ' Задаю имя файла с книгой Excel, где лежит рисунок
    FileName = "D:\Documents and Settings\Миханик\Desktop\Рисунок\Лист с рисунком.xls"
    
    ' Запускаю Excel, открываю файл
    Screen.MousePointer = vbHourglass
    Set AppExcel = CreateObject("Excel.Application")
    Set wBook = AppExcel.Workbooks.Open(FileName)
    Screen.MousePointer = vbDefault

    ' Копирую в буфер обмена рисунок с листа...
    wBook.ActiveSheet.Shapes("Picture 1").Select
    AppExcel.Selection.Copy
    
    ' Вставляю рисунок в PictureBox
    Picture1.Picture = Clipboard.GetData
    
    ' Закрываю книгу, выгружаю Excel
    wBook.Close
    Set wBook = Nothing
    Set AppExcel = Nothing
End Sub

 
В файлике лежит архив с моим проектом... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)