Zum Inhalt springen
Hilfe zu Outlook, Thunderbird, KuNoMail & Co.

Fehler in [b] For Each objMailSel In objSelection [/b]

Überblick

Status
Beantwortet
Gefragt von
Unbekannt
Gefragt am
Antworten
3
Letzte Antwort
von MichaelBauer

Frage

Hallo,

ich möchte einen Fehler abfangen der auftritt, wenn ich auch nicht MailItems im Explorer markiere (Run time error 13 Datatype mismatch). Kann man in For Each objMailSel In objSelection eine Abfrage hinzufügen und warum wird das nicht selbstständig gecheckt?

Danke für die Hilfe
Grüße Simon

Public Sub GetSelectedMailItems()
Dim objFolder As MAPIFolder
Dim objMailSel As MailItem
Dim objSelection As Selection

Select Case Application.ActiveWindow.Class
Case olExplorer
Set objFolder = Application.ActiveExplorer.CurrentFolder
If objFolder.DefaultMessageClass = \“IPM.Note\“ Then
Set objSelection = Application.ActiveExplorer.Selection
Select Case objSelection.Count
Case 0
MsgBox \“Es sind keine Mails ausgewählt !\“

Case Else
For Each objMailSel In objSelection
Forward objMailSel
Next
End Select
Set objSelection = Nothing

Else
MsgBox \“Im Ordner \’\“ & objFolder.Name & _
\“\‘ sind keine Mails enthalten!\“
End If
Set objFolder = Nothing
…

3 Antworten

3 Antworten anzeigen - 1 bis 3 (von insgesamt 3)
  1. Dim obj as Object
    Dim Mail as Outlook.MailItem
    For Each obj in Selection
      If TypeOf obj is Outlook.MailItem then
        Set Mail=obj
        ....
      Endif
    Next

    Viele Grüße
    Michael Bauer

  2. Super Danke!

    Dann macht For Each obj in Selection keinen Vergleich, ob das Objekt in Selection auch mit dem Typ von obj übereinstimmt, sondern nimmt einfach jedes Objekt?

    Grüße
    Simon

  3. Der Vergleich findet insofern statt, als dass bei einer falschen Zuweisung ein Fehler ausgelöst wird.

    Du hattest die Variable explizit als MailItem deklariert, darum trat ein Fehler auf, wenn in Selection ein anderer Objekttyp vorhanden war. Bei der Deklaration As Object sind alle Objekttypen erlaubt. Die Prüfung, um welchen Typen es sich genau handelt, findet bei meinem Beispiel ist in der nächsten Zeile mit TypeOf statt.

    Viele Grüße
    Michael Bauer

3 Antworten anzeigen - 1 bis 3 (von insgesamt 3)
  • Sie müssen angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.