Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
1

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

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

Author24 — интернет-сервис помощи студентам
Специалисты по работе с картинками! Что не так?
Скомпоновал из разных примеров в одну кучу.
Изначально была задача сохранить выделенное в файл.
Потом добавил, что б и на форму кидало:
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2010, 22:11
Ответы с готовыми решениями:

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

Сохранение текущего листа с сохранением имени листа и присвоением новой книге имени текущего листа
Sub Save_as() With Application.FileDialog(msoFileDialogSaveAs) .InitialFileName =...

Как печатать в любой части листа
Всем привет! Подскажите ребята, как в OpenOffice можно сделать так, чтобы куда нажал мышкой, там...

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

1
154 / 33 / 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
01.11.2010, 09:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2010, 09:03
Помогаю со студенческими работами здесь

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

Сохранение канваса как картинки
Доброе время суток, у меня есть не большая проблема когда я пытаюсь сохранить канвас, он...

Как написать программу по изменению части png картинки?
Есть две png картинки. Их размер (высота, ширина) одинакова. Нужно скопировать часть первой...

Поиск и сохранение изображений от Google.Картинки и Яндекс.Картинки
Мир вам, братья по увлечению! Я на вашем форуме впервые, давно хотел влиться в какое-нибудь...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru