Hallo Experten,
ich hatte mal gelernt, dass man alles, was man manuell als User in Excel machen kann, auch per VBA-Makros programmieren kann (und darüber hinaus mit VBA natürlich noch viel mehr).
Nun stehe ich vor einem Problem, welches ich zwar manuell aber eben nicht per VBA-Code lösen kann. (Hinweis: ich benutze Excel 2019 unter Windows 10).
Ausgangspunkt:
Ich habe in einem Worksheet (Name: „eMail-Vorlage“) ein Textfeld über die Menüs Einfügen/Text/Textfeld (also als Shape und nicht als Userform!) abgelegt. Dieses Textfeld (zugewiesener Name: „eMailNachricht“) enthält formatierten Text (inkl. verschiedener Schriftarten und Schriftgrößen, mit und ohne Unterstreichung, kursiv und normal, unterschiedliche Farben).
Diesen formatierten Text dieses Textfeldes (also den Textfeld-Inhalt *ohne* Textfeld-Rahmen) möchte ich gerne per VBA-Code in die Zwischenablage kopieren (da ich dann anschließend diesen Text als Body einer Outlook-eMail verwenden möchte).
Manuell (ohne VBA) kann ich einfach das Textfeld anklicken, dann den gesamten Text mit [Strg]+[a] markieren und mit [Strg]+[c] den Text in die Zwischenablage bringen.
(Kontrollieren kann ich den korrekten Transfer, indem ich anschließend den Inhalt der Zwischenablage z. B. in Word mit [Strg]+[v] einfüge.)
Genau das gleiche möchte ich auch per VBA-Code machen. Leider habe ich hierzu noch keine Lösung gefunden. Scheinbar gibt es den entsprechenden „Copy-Befehl“ hierfür nicht. Habe schon das ganze Wochenende in den verschiedenen Foren nach einer Lösung gesucht aber leider nichts gefunden. Vielleicht habt ihr eine Idee?
Hinweis: Über den Umweg der Textablage in einer Excel-Zelle (hier „A1“) mit dem Code…
Range("A1") = Worksheets("eMail-Vorlage").Shapes("eMailNachricht").TextFrame.Characters.Text
Range("A1").Copy
…landet der Text zwar in der Zwischenablage, aber dadurch wird leider die Text-Formatierung nicht mit übernommen.
Anderseits wird mit dem Code…
Worksheets("eMail-Vorlage").Shapes("eMailNachricht").Copy
… das gesamte Shape inkl. Formatierung in die Zwischenablage übernommen, aber leider auch mit dem Rahmen des Textfeldes, welchen ich nicht haben möchte.
Hat jemand eine Idee?
|