Anzeige
Archiv - Navigation
1252to1256
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zwischenablage

Zwischenablage
Wolfgang
Hallo
Ich möchte gerne die Anzahl der Zeilen eines Textes
der in die Zwischenablage kopiert wurde auslesen.
Gibt es dafür überhaupt eine Möglichkeit?
gruß
Wolfgang

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zwischenablage
15.03.2012 19:42:51
Nepumuk
Hallo,
so:
Option Explicit

Private Declare Function OpenClipboard Lib "user32.dll" ( _
    ByVal hWnd As Long) As Long
Private Declare Function GetClipboardData Lib "user32.dll" ( _
    ByVal wFormat As Long) As Long
Private Declare Function CloseClipboard Lib "user32.dll" () As Long
Private Declare Function IsClipboardFormatAvailable Lib "user32.dll" ( _
    ByVal wFormat As Long) As Long
Private Declare Function lstrlen Lib "kernel32.dll" Alias "lstrlenA" ( _
    ByVal lpString As Long) As Long
Private Declare Function GlobalLock Lib "kernel32.dll" ( _
    ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32.dll" ( _
    ByVal hMem As Long) As Long
Private Declare Function lstrcpy Lib "kernel32.dll" Alias "lstrcpyA" ( _
    ByVal lpString1 As Any, _
    ByVal lpString2 As Any) As Long

Private Const CF_TEXT = 1

Public Sub Beispiel()
    Dim strReturn As String
    strReturn = StringFromClipboard
    If strReturn <> "" Then
        MsgBox CStr(UBound(Split(strReturn, vbCr)) + 1) & " Zeilen"
    Else
        MsgBox "Nix drin"
    End If
End Sub

Private Function StringFromClipboard() As String
    Dim lngHandle As Long, lngPointer As Long
    Dim strText As String
    If IsClipboardFormatAvailable(CF_TEXT) Then
        Call OpenClipboard(0&)
        lngHandle = GetClipboardData(CF_TEXT)
        lngPointer = GlobalLock(lngHandle)
        strText = Space$(lstrlen(ByVal lngPointer))
        Call lstrcpy(strText, ByVal lngPointer)
        Call GlobalUnlock(lngPointer)
        Call CloseClipboard
        StringFromClipboard = strText
    End If
End Function

Gruß
Nepumuk
Anzeige
AW: Zwischenablage
15.03.2012 20:16:25
Wolfgang
Hallo Nepumuk
Danke für die schnelle Antwort.
Die entscheidenden Programmzeile habe ich
Deinem Skript entnommen.
Das was ich wollte klappt einwandfrei.
gruß
Wolgang

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige