Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 2)

Модерирует : ShIvADeSt

ShIvADeSt (11-01-2010 10:17): http://forum.ru-board.com/topic.cgi?forum=33&topic=10903  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Olive77

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Private Declare Function OpenClipboard Lib "User32" _
   (ByVal hwnd As Long) As Long
 
Private Declare Function CloseClipboard Lib "User32" () As Long
 
Private Declare Function GetClipboardData Lib "User32" _
   (ByVal uFormat As Long) As Long
 
Private Declare Function CopyEnhMetaFileA Lib "Gdi32" _
   (ByVal hENHSrc As Long, ByVal lpszFile As String) As Long
 
Private Declare Function DeleteEnhMetaFile Lib "Gdi32" _
   (ByVal hdc As Long) As Long
 
Sub ExportPictureAsEmf()
Dim myEmfFile, Rep As Long
 
   Do
      myEmfFile = Application.GetSaveAsFilename("Test", _
        "Windows metafile (*.emf),*.emf", , "Exporting ...")
      If VarType(myEmfFile) = vbBoolean Then Exit Sub
       
      If Dir$(myEmfFile) <> "" Then
        Rep = MsgBox("The file " & myEmfFile & " already exists. " _
        & "Would you like to replace it?", vbYesNoCancel + vbQuestion)
        If Rep = vbCancel Then Exit Sub
        If Rep = vbYes Then
            Kill myEmfFile
            Exit Do
        End If
      Else
        Exit Do
      End If
   Loop
   
   If CopyMyEmfFile(ActiveChart, CStr(myEmfFile), xlScreen, xlPicture) = "" Then
      MsgBox "Error!", vbCritical
   Else
      MsgBox "Chart is saved into " & myEmfFile & " ."
   End If
 
End Sub
 
Private Function CopyMyEmfFile(myObject As Object, _
   sFileNameFull As String, Optional iAppearance, _
    Optional iFormat, Optional iSize) As String
Const CF_ENHMETAFILE As Long = 14
 
    If TypeName(myObject) <> "Chart" Then
        myObject.CopyPicture iAppearance, iFormat
    Else
        myObject.CopyPicture iAppearance, iFormat, iSize
    End If
     
    OpenClipboard 0
    If DeleteEnhMetaFile(CopyEnhMetaFileA(GetClipboardData(CF_ENHMETAFILE), sFileNameFull)) = 0 Then
        CopyMyEmfFile = ""
    Else
        CopyMyEmfFile = sFileNameFull
    End If
     
    CloseClipboard
End Function
 

Всего записей: 1271 | Зарегистр. 26-12-2002 | Отправлено: 16:54 26-09-2007 | Исправлено: Olive77, 17:04 26-09-2007
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 2)
ShIvADeSt (11-01-2010 10:17): http://forum.ru-board.com/topic.cgi?forum=33&topic=10903


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru