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

Kommentar hinterlassen

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