2 Stimmen

VBA Microsoft Outlook E-Mail-Verarbeitung - Hinzufügen eines weiteren Falls

Im 'ThisOutlookSession' habe ich dieses Unterprogramm, das einen bestimmten Anhang abfängt. Wie kann ich eine weitere Bedingung hinzufügen, bei der ein weiterer bestimmter E-Mail-Artikel und Anhang aufgenommen wird?

Private Sub Items_ItemAdd(ByVal item As Object)

    On Error GoTo ErrorHandler

    'Nur handeln, wenn es sich um ein MailItem handelt
    Dim Msg As Outlook.MailItem
    If TypeName(item) = "MailItem" Then
        Set Msg = item

        'Variablen ändern, um Bedürfnissen anzupassen. Kommentieren oder löschen Sie jeden unnötigen Teil.
        If (Msg.SenderName = "Absender") And _
            (Msg.Subject = "Betreff") And _
            (Msg.Attachments.Count >= 1) Then

            'Ordner zum Speichern festlegen.
            Dim olDestFldr As Outlook.MAPIFolder
            Dim myAttachments As Outlook.Attachments
            Dim Att As String

            'Speicherort angeben. Kann Laufwerk oder Netzlaufwerk sein.
            Const attPath As String = "Z:\Ordner\Ordner\"

            'Anhang speichern
            Set myAttachments = item.Attachments
            Att = myAttachments.item(1).DisplayName
            myAttachments.item(1).SaveAsFile attPath & Att

            'Als gelesen markieren
            Msg.UnRead = False
        End If

    End If

ProgrammBeenden:
    Exit Sub

Fehlerbehandlung:
    MsgBox Err.Number & " - " & Err.Description
    Resume ProgrammBeenden
End Sub

4voto

SliverNinja - MSFT Punkte 29965

Sie können If-Then-Else-Anweisungen oder Case-Anweisungen verwenden, um eine bedingte Verzweigung im VBA-Code durchzuführen. Unten sind Beispiele aus den vorherigen MSDN-Links aufgeführt.

If-Then-Else-Anweisung

If dayW = DayOfWeek.Wednesday Then 
    If hour = 14 Or hour = 15 Then 
        Return True 
    Else 
        Return False 
    End If 
ElseIf dayW = DayOfWeek.Thursday Then 
    If hour = 12 Then 
        Return True 
    Else 
        Return False 
    End If 
Else 
    Return False 
End If 

Case-Anweisung

Select Case number
    Case 1 To 5
        Debug.WriteLine("Zwischen 1 und 5, einschließlich")
        ' Der folgende Fall ist der einzige, der True ergibt. Case 6, 7, 8
        Debug.WriteLine("Zwischen 6 und 8, einschließlich")
    Case 9 To 10
        Debug.WriteLine("Gleich 9 oder 10")
    Case Else
        Debug.WriteLine("Nicht zwischen 1 und 10, einschließlich")
End Select

Wenn Ihr Computer nicht eingeschaltet ist, wird Ihr VBA-Code niemals ausgeführt.

4 Stimmen

+1 für die eher wichtige Anmerkung zum eingeschalteten Zustand des Computers.

1 Stimmen

Die produktivste Zeit zum Codieren ist bei einem Stromausfall und der Akku meines Laptops ist leer...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X