Ich habe nachfolgenden Code entdeckt. Könnte man den auch im Excel umsetzen?
Leider meldet VBA immer ein Fehler bei Clipboard.GetData beim Kompilieren.
Hat jemand eine Idee?
Vielen Dank
Schönen Abend
Stefan
Option Explicit
' zunächst die benötigten API-Deklarationen
Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
' Screenshot erstellen und ggf. als Bitmap speichern
Private Sub DoSnapshot(Optional ByVal bActiveWindow As Boolean = False, _
Optional ByVal sFile As String = "")
' Der Parameter bActiveWindow legt fest, ob ein Screenshot
' für das aktuelle Fenster (True) oder für gesamten
' Windows-Desktop (False)erstellt werden soll
' Wird für "sFile" ein Dateiname angegeben wird der
' Screenshot sofort als Bitmap gespeichert
Const KEYEVENTF_KEYUP = &H2
Const VK_MENU = &H12
Const VK_SNAPSHOT = &H2C
' Screenshot erstellen ...
If bActiveWindow Then keybd_event VK_MENU, 0, 0, 0 ' ALT-Taste
keybd_event VK_SNAPSHOT, 0, 0, 0 ' Druck-Taste
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
If bActiveWindow Then keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
DoEvents
' ... und als Bild speichern
If sFile <> "" Then
SavePicture Clipboard.GetData, sFile
End If
End Sub
'Beispiel für den Aufruf:
' Destkop als Bild speichern
DoSnapshot , "d:\desktop,bmp"
' Aktives Fenster als Bild speichern
DoSnapshot True, "d:\window,bmp"