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 der Hinweis wird beim Schließen der Datei nicht mehr angezeigt.