Excel - Daten in die Zwischenablage kopieren

Excel VBA Programmierung

Dieser Artikel beschäftigt sich mit Methoden in Excel Daten aus einem Worksheet in die Zwischenablage zu kopieren,
um sie in anderen Anwendungen in einem definierten Format einzufügen.

Die Copy Methode

Die einfachste Methode Daten zu kopieren ist die copy -Methode, die auf Range -Objekt angewendet werden kann. Die copy -Methode kopiert die Daten aus einem Bereich in einen anderen.

Ausdruck.Copy(Destination)
Ausdruck Das zu kopierende Range Objekt
Destination (Optional) Der Bereich, in den die Daten hineinkopiert werden.
Wenn dieses Argument nicht angegeben wird, werden die Daten in die Zwischenablage kopiert.

Beispiel

Private Sub CommandButton1_Click()

   Range("A1:A2").Copy Destination:=Range("B1") 'Kopiert Zellen A1 und A2 nach B1 und B2
   Range("A3").Copy 'Kopiert Zelle A3 in die Zwischenablage

   Paste Destination:=Range("B3") 'Fügt die Daten aus der Zwischenablage in Zelle B3 ein

End Sub

Tipp: Benutze das Programm ..\WINDOWS\system32\clipbrd.exe um die Daten in der Zwischenablage einzusehen.

Copy speichert die Daten in verschiedenen Formaten in der Zwischenablage. Mit clipbrd.exe kann dies genauer analysiert werden. Im standard Text Format liegt die Tabelle als Tabulator getrennter Text vor. Unter anderem wird z.B. auch ein Bitmap gespeichert, das in Bildbearbeitungsprogrammen eingefügt werden kann.

Das DataObject

Das DataObject eignet sich für Übertragungsoperationen über die Zwischenablage oder per Drag&Drop. In ihm können mehrere Texte verschiedener Formate durch die SetText-Methode gespeichert werden und durch die GetText-Methode wieder ausgelesen werden. Mit der PutInClipboard-Methode wird das DataObject in der Zwischenablage gespeichert. Die GetFromClipboard-Methode holt die Daten wieder zurück in das DataObject.

object.SetText( StoreData [, format])
String = object.GetText( [ format])

Der Methode SetText wird als Argument der zu kopierende Text übergeben. Optional kann durch eine Ganzzahl oder Zeichenfolge ein benutzerspezifisches Format angegeben werden. Standardwert ist 1 für Textformat. Für jedes Format kann nur ein Wert gespeichert werden. Wird SetText ein zweites mal für das gleiche Format aufgerufen, werden die Daten überschrieben.

Das folgende Beispiel kopiert die Daten aus markierten Zellen und speichert sie ‘;’ getrennt in der Zwischenablage.

Dim data As DataObject
Private Sub ToClipboard()
    Set data = New DataObject
    Dim Text As String

    nAreas = Selection.Areas.Count
    For nArea = 1 To nAreas 'Schleife durch alle markierten Bereiche
        nRows = Selection.Rows.Count
        For nRow = 1 To nRows 'Schleife durch markierte Zeilen
            nCells = Selection.Rows(nRow).Cells.Count
            For nCell = 1 To nCells 'Schleife durch Zellen
                Text = Text & Selection.Cells(nRow, nCell).Text & ";"

            Next nCell
            Text = Text & vbLf
        Next nRow
    Next nArea

    data.SetText Text
    data.PutInClipboard
End Sub

Diskussion

Sende ein Kommentar, Frage, Korrekturen, Beschimpfungen...

Name:

Nachricht:


doxapp c++
Zur Übersicht
home