Удаление созданного файла jpg, из которого скопирована картинка в форму - VBA
Формулировка задачи:
Всем доброго время суток!
Возникла проблема удаление созданного файла .jpg. Я при помощи кода копирую картинку из листа Excel в файл, и уже потом загружаю этот рисунок в форму.
После выполнение действий в блоке мне необходимо удалить этот файл, но я не могу его удалить, т.к. он используется программой. Даже после остановки макросов файл не удаляется. Удалить его можно только лишь после закрытия Excel'я. Возможно ли как-нибудь удалить этот файл до закрытия программы?(закрыть обращение Excel к этому файлу)
Листинг программы
- Sub Main() 'Сохранение картинки в файл
- Dim sh As Shape, n As Long
- For Each sh In Sheets(8).Shapes
- If sh.Type = msoPicture Then
- sh.CopyPicture: OpenClipboard (0&): n = GetClipboardData(14)
- CopyEnhMetaFile n, "c:" & "picture111" & ".jpg": CloseClipboard
- End If
- Next
- End Sub
Листинг программы
- UserForm2.Image1.Picture = LoadPicture("c:" & "picture111" & ".jpg")
Ах, да забыл. Объявляю следующие функции
Листинг программы
- 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
Решение задачи: «Удаление созданного файла jpg, из которого скопирована картинка в форму»
textual
Листинг программы
- Private Declare Function DeleteEnhMetaFile Lib "gdi32.dll" (ByVal hemf As Long) As Long
- ...
- Dim n As Long, h As Long
- ...
- h = CopyEnhMetaFile(n, "C:\picture111.jpg")
- DeleteEnhMetaFile h
- Kill "C:\picture111.jpg"
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д