Zwischenablage per VBA leeren


Wenn Sie größere Datenmengen über die Zwischenablage in Excel per VBA kopieren, kann dies zu Problemen beim Schließen der Datei führen. Excel gibt beispielsweise die Meldung "Das Bild ist zu groß und wird abgeschnitten" aus. Häufig friert Excel dabei ein und kann nur noch über den Task-Manger beendet werden.

Um dieses Problem zu vermeiden sollten Sie vor dem Beenden der Datei die Zwischenablage (Clipboard) leeren. 
Dazu können Sie folgenden VBA-Code in einem Code-Modul verwenden:

Private Declare Function OpenClipboard& Lib "user32" (ByVal hwnd As Long)
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard& Lib "user32" ()

Public Sub ClearClipboard() 
OpenClipboard 0&
EmptyClipboard
CloseClipboard
End Sub

Aufgerufen kann der Code beispielsweise vor dem Beenden der Datei aufgerufen werden. Tragen Sie dazu folgenden Code in das Modul "DieseArbeitsmappe" ein.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ClearClipboard
End Sub

Damit wird die Zwischenablage geleert und die Fehlermeldung wird beim Beenden nicht mehr angezeigt.