@xlKing
Vielen Dank für die ausführlichen Infos! Das meiste davon wusste ich allerdings schon, und vieles wird im Original-Code auch verwendet - ich wollte das angezeigte Code-Schnipsel halt so kurz und übersichtlich wie möglich halten (dabei hab ich beim Übertragen wohl aus Gewohnheit die Klammern um (oCurItem) hingepinselt).
Der Punkt ist aber wirklich der, dass dieser Code beim "freien Durchlauf" leere Selections (Count = 0) zurückgibt, beim "Durchklickern" im Debugger aber die tatsächliche, korrekte Anzahl an Items hat. (Count > 0). Woran das liegen könnte, ist mir schleierhaft und wäre der eigentliche Ansatzpunkt für die Lösung des Problems.
Warum kein CurrentFolder.Items.Item(i)?
Dazu muss ich etwas weiter ausholen. Diese Anwendung bearbeitet verschlüsselte Mails. Wenn ein Benutzer keine Berechtigung hat, kommt zwar ein abfangbarer Fehler, aber die Infos, die man dann über die verweigerte Mail erhält, sind - korrekterweise - sehr rudimentär. Und hier kommt der Unterschied zwischen der Schleife und der Selection: mit der Selection bekomme ich im Fehlerfall über das oCurItem (neben dem Subject) auch die Felder ReceivedTime und SentOnBehalfOfName korrekt angezeigt, bei der Schleife steht hier - erstaunlicherweise - ein (für mich nutzloser) Fehlerwert. Da bei vielen (Hin-und-Her-) Mails der Betreff (Subject) oft nicht verändert wird, sind diese beiden Felder zum Auffinden der betroffenen Mail für den Benutzer unabdingbar.
Sollte das alles auch anders gehen: her damit!
@Gast81084
Dein Code-Vorschlag ist natürlich viel kompakter und übersichtlicher; ich brauche aber, wie gesagt, den Zugriff über ein Selection-Objekt.
Grüße
Buki
|