Kopie E-Mail in die Zwischenablage mit Outlook-VBA
Wie kopiere ich eine E-Mail in die Zwischenablage und fügen Sie ihn in excel die Tabellen intakt?
Bin ich mit Outlook 2007 und ich möchte das gleiche
"Click on email > Select All > Copy > Switch to Excel > Select Cell > Paste".
Habe ich das Excel-Objekt-Modell ziemlich gut verstanden, aber haben keine erleben Sie in Outlook anderen als den folgenden code.
Dim mapi As NameSpace
Dim msg As Outlook.MailItem
Set mapi = Outlook.Application.GetNamespace("MAPI")
Set msg = mapi.Folders.Item(1).Folders.Item("Posteingang").Folders.Item(1).Folders.Item(7).Items.Item(526)
InformationsquelleAutor Arlen Beiler | 2010-10-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich muss zugeben, dass ich diese in Outlook 2003, aber bitte sehen, ob es funktioniert in 2007:
können Sie die MSForms.DataObject zum Datenaustausch mit der Zwischenablage. In Outlook-VBA, erstellen Sie einen Verweis auf "Microsoft Forms 2.0 Object Library", und versuchen, diesen code (natürlich können Sie befestigen Sie die Sub() zu einer Schaltfläche, usw.):
Danach wechseln Sie zu Excel, und drücken Sie Strg-V - nächste Woche gehts Los!
Wenn Sie wollen auch zu finden die aktuell laufende Excel Anwendung zu automatisieren und auch diese, lassen Sie es mich wissen.
Es gibt immer eine gültige HTMLBody, auch wenn die mail gesendet wurde, im nur-Text-oder RTF-und Excel zeigt alle text-Attribute vermittelt innerhalb HTMLBody inkl. Spalten, Farben, Schriftarten, hyperlinks, Einzüge etc. Jedoch eingebettete Bilder werden nicht kopiert.
Dieser code veranschaulicht das wesentliche, aber nicht überprüfen, ob wirklich ein MailItem ist ausgewählt. Dies würde erfordern mehr Codierung, wenn Sie wollen, um es Arbeit für Kalender-Einträge, Kontakte, etc. wie gut.
Es ist genug, wenn Sie gewählt haben, die E-mail in der Listenansicht, die Sie gar nicht brauchen, um es zu öffnen.
wenn Sie "durchsuchen" für die Referenz, suchen Sie nach "fm20.dll" in deinen ...\system32 Verzeichnis
Ich verwende Outlook 2013 unter Windows 8.1. Es kopiert nur zwei falsche Zeichen über die Zwischenablage. Irgendeine Idee, wie man dieses Problem beheben? Konnte ich nicht finden fm20.dll unter windows-Ordner, so folgte @ArlenBeiler 's Beratung.
Da ich keine Win8, ich kann nur generische Hinweise: 1) auf Win8/64bit versuchen Sie eine Suche in ...\Windows\SysWOW64; 2) stellen Sie eine vollständige Suche für FM20.DLL; 3) versuchen, den Download/Anmeldung FM20.DLL; 4) weiter Lesen stackoverflow.com/questions/18668928/...
InformationsquelleAutor MikeD
Ich endlich wieder abholen und vollständig automatisiert. Hier sind die Grundlagen dessen, was ich Tat, um zu automatisieren.
Habe ich entfernt, das logo urls um Zeit zu sparen, und wenn Sie den Umgang mit den 300 E-Mails, die sich in mindestens zehn Minuten gespeichert.
Bekam ich den code, den ich brauchte,ein TechRepublic-Artikel, und dann verändert es auf meine Bedürfnisse anzupassen. Vielen Dank an das akzeptiert Beantworter dieser Frage für Sie die Zwischenablage-code.
InformationsquelleAutor Arlen Beiler
Ok, so dass ich haben, um bestimmte Annahmen, da fehlen Informationen aus Ihrer Frage.
Erstens: Sie hat nicht gesagt, was mailformat die Nachricht... HTML wäre am einfachsten, der Prozess wird anders sein für die RTF und nicht möglich im Klartext
Da Sie sich auf Tabellen, die ich nehme an, Sie sind HTML-Tabellen und E-mail-format ist HTML.
Es ist auch nicht klar, aus Ihrer Frage, wenn Sie möchten den Inhalt der Tabelle eingefügt separat (1 excel-Zelle pro Zelle) und der rest der E-Mails bodytext einfügen in 1 Zelle oder mehrere?
schließlich haben Sie nicht wirklich gesagt, wenn Sie wollen die VBA ausführen von Outlook oder Excel (nicht wichtig, aber es wirkt sich auf die intrinsische Objekte verfügbar sind.
Sowieso code-Beispiel:
Outlook code für den Zugriff auf die htmlbody-prop
Gut ok gut, sondern setzen den text in ein dataobject ist trivial. ich sehe, dass ich verpasst, dass ein Teil der Frage. schlechte Annahme auf meinem Teil, aber der interessante code ist den text zu beginnen.
InformationsquelleAutor Anonymous Type
Nach einer Weile wieder, ich fand einen anderen Weg. MailItem.Körper ist plain-text, und der hat ein tab-Zeichen zwischen den Tabellenzellen. So habe ich, dass. Hier ist der Kern dessen, was ich getan habe:
Durchschnitt: 77-E-Mails verarbeitet pro Sekunde. Ich mache einige kleinere Bearbeitung und Extraktion.
InformationsquelleAutor Arlen Beiler