![]() |
||
![]() |
Inhalt aus der Zwischenablage mit einem Makro bearbeitenSeit Wochen versuche ich, ein Makro zu entwerfen, das in ein Word-Dokument den Text einer anderen Datei einfügt. Dabei soll das Makro den Namen der einzufügenden Datei aus der Zwischenablage übernehmen. Ich finde allerdings keinen Weg, diese Anforderung umzusetzen. Ein Versuch über den Befehl »Selection.Paste« schlug fehl, obwohl beim manuellen Vorgang das Einfügen aus der Zwischenablage über [Strg]+[V] möglich ist. Können Sie mir helfen? Es gibt keine Möglichkeit, bei der Anweisung »Selection.InsertFile« den Namen der einzufügenden Datei direkt aus der Zwischenablage zu lesen. Aus diesem Grund ist es sinnvoll, den Namen der Datei in eine Variable vom Typ »string« zu schreiben. Die können Sie dann problemlos mit einem Befehl ansprechen. Public Sub GetClipBoardText () Bei »DataObject« handelt es sich um eine Ablage von formatierten Textdaten. Das Objekt kann mehrere Elemente enthalten, die aber von unterschiedlichen Formaten sein müssen. Mit der »DataObject«-Methode »GetFromClipboard« kopieren Sie Daten aus der Zwischenablage nach »DataObject«, bevor Sie diese mit Hilfe der Methode »GetText(1)« in eine »string«-Variable schreiben. Das in Klammern stehende Argument von »GetText« definiert das Format, das bearbeitet werden soll, wobei die »1« für das Textformat steht und die Grundeinstellung ist. Nun können Sie einfach über die Methode »Selection.InsertFile« die Datei einfügen. Denn deren Namen kann die Anweisung aus der »string«-Variablen lesen. Der Befehl »ChangeFileOpenDirectory« legt den Ordner fest, in dem Word nach Dokumenten sucht. So zeigt das Programm zum Beispiel den Inhalt dieses Ordners, wenn Sie das nächste Mal den Menübefehl »Datei | Öffnen« wählen. Sie können diese Anweisung nutzen, falls alle einzufügenden Dateien in einem speziellen Ordner zu finden sind. In unserem Beispiel ist das C:\TEMP. Sollten die Dateien allerdings aus unterschiedlichen Verzeichnissen stammen, müssen Sie gewährleisten, dass in der Zwischenablage immer der komplette Pfad zu dieser Datei liegt. |
![]() |