| |

Suche Visual-Basic CodeRe: Von Outlook autom. Tabelle in Excel, Makro ausfürhen und speichern | |  | Autor: me36835 | Datum: 23.08.06 16:11 |
| Hallo PinkoPalino,
öffne das VBA Fenster in Outlook mit [Alt]+[F11].
Bevor wir irgend etwas programmieren, öffenen wir im Visual Basic Fenster über Extras / Optionen einen Dialog, in dem wir auf der Registerkarte Editor den Punkt "Variablendeklaration erforderlich" auswählen. Ohne diese Auswahl werden Schreibfehler bei der Eingabe von Code nicht als Schreibfehler, sondern als neue Variable gedeuted. Das macht die Suche von Fehlern im Programm extrem schwer. Wenn diese Option eingestellt ist, steht am Kopf eines jeden Moduls "Option Explicit".
Nur im Modul DieseOutlookSitzung gibt es in der Drop Down Liste oben links neben (General) noch das Schlüsselwort Application. Wenn wir dieses Wort ausgewählt haben, können wir Drop Down Liste oben rechts verschiedene Ereignisse sehen und auswählen. Für unseren Zweck wählen wir NewMailEx, da dieses Ereignis im Gegensatz zu NewMail auch die neue Mail selber identifiziert.
' Im Modul DieseOutlookSitzung (ThisOutlookSession)
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
' Entweder schreibst Du hier deinen Code,
' oder Du rufst hier eine Prozedur mit dem Übergabeparameter
' "EntryIDCollection" auf. Ich empfehle zu beispiel folgeden Aufruf
' einer neuen
' Prozedur
CALL MN.neue_post(EntryIDCollection)
End Sub Wenn jetzt eine neue Mail eintrifft, wird automatisch das Ereignis NewMailEx ausgelöst und eine eindeutige EntryIDCollection bereit gestellt. Dieser Schlüssel ist allerdings nur ein wirrer Text aus Ziffern und Buchstaben. Diesen Schlüssel müssen wir in ein MailItem Object umwandeln.
Um den Schlüssel in ein MailItem zu verwandeln benötigen wir den
Outlook.NameSpace. Für das NameSpace Objekt halte ich eine globale Variable für sinnvoll.
' Neues Modul GL (GLOBAL)
Global NS As Outlook.NameSpace
Global Stmp As String ' allgemeine Variable für Texte
Sub set_namespace
Set NS = Outlook.GetNamespace("MAPI")
End sub Nun der Code zum Auswerten der Mail
' Neues Modum MN (Main)
Sub neue_post(sID As String)
Dim mIt As Outlook.MailItem
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Ende Deklaration
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If NS Is Nothing Then GL.set_namespace
Stmp = TypeName(NS.GetItemFromID(sID))
If Stmp = "MailItem" Then
Set mIt = NS.GetItemFromID(sID)
Else
MsgBox "Die neue Mail ist vom unerwarteten Typ " & vbLf & Stmp & vbLf & "" & _
"und kann mit den existierenden Makro nicht verarbeitet werden.", _
vbCritical, "Abbruch"
Exit Sub
End If
... Jetzt würde ich prüfen, ob es sich um den richtigen Absender handelt z.B.:
If mIt.SenderName <> "absender@absender.de" Then Exit Sub Das Object mIt hat diverse Argumente, die Du weiter verarbeiten kannst. Deine Daten findest Du in mIt.Body und je nach Typ auch in MIt.HTMLbody.
-- ich speichere hier erst mal - Fortsezung folgt -- |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevDTA 3.0 Pro 
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|