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 34 35 36 37 38 39 40 41
| Option Explicit
Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Private Sub CommandButton1_Click()
Dim Ws As Worksheet
Dim Pict As Picture
'Copie d'écran de la forme active
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Application.ScreenUpdating = False
'Ajoute une feuille temporaire pour coller l'image de la forme
Set Ws = Sheets.Add
Ws.Paste
'Définit la premiere image dans la feuille
Set Pict = Ws.Pictures(1)
Pict.CopyPicture 'copie l'image
With Ws.ChartObjects.Add(0, 0, Pict.Width, Pict.Height).Chart
.Paste 'colle l'image dans un graphique temporaire
'Sauvegarde au format image, dans le même répertoire que ce classeur.
.Export "C:\" & Pict.Name & ".gif", "GIF"
End With
'Supprime le graphique temporaire
Ws.ChartObjects(1).Delete
'Supprime la feuille temporaire
Application.DisplayAlerts = False
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub |
Partager