Kann mir mal jemand sagen, wie ich über VBA den Status der Zwischenablage abfragen (nicht leer/leer) kann? Danke!
Kann mir mal jemand sagen, wie ich über VBA den Status der Zwischenablage abfragen (nicht leer/leer) kann? Danke!
irgendwie so etwas?
Private Const CF_TEXT = 1
Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Long, ByVal ByteLen As Long)
Private Sub Form_Load()
'KPD-Team 2001
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim hStrPtr As Long, lLength As Long, sBuffer As String
OpenClipboard Me.hwnd
hStrPtr = GetClipboardData(CF_TEXT)
If hStrPtr <> 0 Then
lLength = lstrlen(hStrPtr)
If lLength > 0 Then
sBuffer = Space$(lLength)
CopyMemory ByVal sBuffer, ByVal hStrPtr, lLength
MsgBox sBuffer, vbInformation
End If
End If
CloseClipboard
End Sub
OpenClipboard Me.hwnd (unzulässige Verwendung von Me)
Ich hab mir eine eigene Symbolleiste (wird bei jedem Aufruf der Datei neu erstellt und beim Schließen der Datei gelöscht) mit den Schaltflächen Cut und Paste erstellt. Ich wollte es so programmieren, dass die Paste-Schaltfläche nur enabled ist, wenn auch Daten in der Zwischenablage sind.
Kann man deinen Code oben so umstricken? Ich programmiere erst seit zwei Wochen mit Excel und kenn mich da noch nicht so gut aus.
Es ist ja im Prinzip eine Abfrage wie:
Daten vorhanden -> [Button].Enabled = True
keine Daten -> [Button].Enabled = False
Nur das mit den Daten hab ich noch nicht so ganz raus.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen