С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
Alex77755
10780 / 3345 / 561
Регистрация: 13.02.2009
Сообщений: 9,826
1

Сохранение части листа как картинки

27.10.2010, 22:11. Просмотров 1493. Ответов 1
Метки нет (Все метки)

Специалисты по работе с картинками! Что не так?
Скомпоновал из разных примеров в одну кучу.
Изначально была задача сохранить выделенное в файл.
Потом добавил, что б и на форму кидало:
Visual Basic
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
Private Declare Function OpenClipboard Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32.dll" () As Long
Private Declare Function GetClipboardData Lib "user32.dll" (ByVal wFormat As Long) As Long
Private Declare Function CopyEnhMetaFile Lib "gdi32" Alias "CopyEnhMetaFileA" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long
 
Const CF_ENHMETAFILE As Long = 14
 
Private Sub CommandButton1_Click()
 
Dim PShape As Shape, hStrPtr As Long
 
  Range("F1:Q41").Select
    Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
    
    If Not CBool(OpenClipboard(0)) Then
      MsgBox "Не удалось открыть буфер"
      GoTo NextSh
    End If
    hStrPtr = GetClipboardData(CF_ENHMETAFILE)
    If Not CBool(hStrPtr) Then
      MsgBox "Не удалось получить дескриптор"
      GoTo CloseClip
    End If
    If Not CBool(CopyEnhMetaFile(hStrPtr, "C:\Temp" & hStrPtr & ".jpg")) Then
        MsgBox "Не удалось создать файл"
            Else
   UserForm1.Image1.Picture = LoadPicture("C:\Temp" & hStrPtr & ".jpg")
    UserForm1.Image1.PictureSizeMode = 1
      GoTo CloseClip
    End If
CloseClip:
    CloseClipboard
End Sub
В итоге имею: Файл на диске. Картинку на форме(нормальная)
Картинка по коду взята из файла. Это я сделал для контроля.
Но клик по картинке вызывает ошибку у XnView: Не знает, видите ли, как читать.
Открыть с помощью Paint - открывает, но почему-то на чёрном фоне.
Открыть с помощью Программы просмотра факсов и изображений - всё ОК
Пытаюсь здесь же сохранить как новое изображение. XnView начинает открывать но как и Paint на чёрном фоне

Добавлено через 14 минут
Даже когда пытаюсь сохранить с формы:
Visual Basic
1
2
3
Private Sub CommandButton2_Click()
SavePicture Image1.Picture, "C:\" & Replace(Time, ":", "_") & ".jpg"
End Sub
Та же петрушка
Расширение менял на bmp - не помогает
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2010, 22:11
Ответы с готовыми решениями:

Сохранение листа книги в файле - проблема с защитой листа и привязкой макросов
С толкнулся с такой проблемой при сохранении листа в файле вот код который...

Сохранение листа в из книги как отдельный файл.xls
Процедура по нажатию кнопки-сохранить к примеру лист3 из текущей книги как...

Сохранение листа в отдельную книгу. Как добиться удаления макроса и кнопки его запуска на копии?
Всем доброе утро. Помогите пожалуйста решить несколько задач по данному коду:...

Отображение части данных одного листа на другом
Здравствуйте! У меня вопрос: есть две страницы "Лист1" - пустая, и "Лист2" - с...

Сохранение листа в новой книги
Доброго времени суток форумчане. Срочно нужна консультация специалистов по...

1
PrAvalon
152 / 31 / 10
Регистрация: 27.10.2010
Сообщений: 87
01.11.2010, 09:03 2
В строке
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
надо формат заменить на xlBitmap то есть:
Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap

формат xlPicture это .png, .wmf, .mix
формат xlBitmap это .bmp .jpg .gif
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2010, 09:03

Сохранение и выгрузка информации с листа в файл
Ребят, непростой для меня вопрос. Не зхнаю,можно ли в принципе это...

Автоматическое сохранение данных листа в PDF
Добрый день. Имеется код на автоматическое сохранение листов книги в формате...

Сохранение текущего листа Excel в отдельный файл
Доброго всем времени суток! Помогите справиться с небольшой проблемкой....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru