VBA Text aus Zwischenablage auslesen

VBA - Visual Basic for Application

Visual Basic for Application, kurz VBA, ist eine sehr praktische Programmiersprache innerhalb der Microsoft-Office-Welt, mit der man viele routinemäßoge Aufgaben automatisieren kann. So kann man im Outlook Anhänge automatisch an den Drucker senden, auf dem Laufwerk Ordner anlegen, um einen E-Mail-Anhang zu speichern oder mit Formularen komplette Benutzerinteraktionen zu tätigen.

Bestseller Nr. 1

Als VBA-Programmierer kommt man dann auch schnell an den Punkt, wo man mit der Zwischenablage arbeiten muss, zum Beispiel um Strings (Texte) aus einer anderen Anwendung der VBA-Anwendung zur Verfügung zu stellen. Oder umgekehrt, um einen Text aus der VBA-Anwendung, zum Beispiel den Text einer bestimmten Excel-Zelle, in einer anderen Anwendung einzufügen.

VBA-Code: Text aus Zwischenablage einfügen

Man könnte beispielsweise einen kopierten Dateipfad oder URL einem Office-Dokument automatisch zur Verfügung stellen und zur Weiterbearbeitung markieren. Der Code, um den kopierten Text aus der Zwischenablage auszulesen sieht wie folgt aus:

'Gibt den Text aus Zwischenspeicher zurück, sofern Text im Zwischenspeicher vorhanden
Private Function GetTextFromClipboard() As String
    Dim dObj As New DataObject
    'Gib bei anderem Format, z.B. wenn Bilddatei in Zwischenablage ist, einen leeren String zurück
    On Error Resume Next
    dObj.GetFromClipboard
    GetTextFromClipboard = dObj.GetText
End Function

Nun kann man diese Funktion verwenden, um zum Beispiel den Text aus der Zwischenablage einer Textbox in einem VBA-Formular zu übergeben:

MyForm.MyTextBox.Text = GetTextFromClipboard

VBA-Code: Text der Zwischenablage hinzufügen

Umgekehrt kann man auch Text mit VBA automatisch der Zwischenablage hinzufügen. Vielleicht, weil man per Makro, den Text eines Word-Dokument in die Zwischenablage kopieren möchte, um dieses in einem Authoring-Tool per Strg+V wieder einzufügen. Der Code dafür sieht wie folgt aus:

'Schreibt einen Text in dies Zwischenablage
Private Sub WriteTextToClipboard(strText As String)
    Dim dObj As New DataObject
    dObj.SetText strText
    dObj.PutInClipboard
End Sub

Der Aufruf der Methode innerhalb des VBA-Codes erfolgt dann so:

WriteTextToClipboard "Meine Oma fährt im Hühnerstall Motorad."
Bestseller Nr. 1
Bestseller Nr. 2

2 Kommentare

  1. Kopiere ich eine Excel Zelle enthält der String Anführungszeichen.
    Wie werde ich die los? ich möchte die Information im Dateinamen verwenden.

    1. Kannst du dein Problem etwas ausführlicher beschreiben? Wie kopierst du den Code aus einer Excel-Zelle: mit VBA-Code, oder manuelle mit Strg+C, kopierst du die ganze Zelle oder ist die Zelle im Editiermodus und du markierst den Text und kopierst ihn dann? Was machst du dann mit dem Text in der Zwischenablage? Wie fügst du diesen wo ein? Mittels VBA-Code? Mittels Strg+V? Es gibt zu deiner Frage leider viele denkbare Varianten. Wenn es sich um VBA handelt, vielleicht kannst du den betreffenden Code posten und/oder ein Screenshot, wo und wie die Anführungszeichen auftreten.

Schreibe einen Kommentar zu Mic Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert