Reporter | |
Mit dem Reporter erstellen Sie Berichte für Ihre Outlook Daten. Mit wenigen Klicks werden Werte aus Aufgaben, Terminen und dem Journal summiert. |
Manchmal stöÃt man mit dem Outlookobjektmodell an eine Grenze, um den Begriff des Speicherlecks zu vermeiden: Sollen in einer Schleife mehr als 250 Elemente angesprochen werden, kann es passieren, dass der Speicher nicht wieder freigegeben wird. Das sollte aber eigentlich passieren, wenn die Objektvariable auf Nothing oder ein neues Objekt gesetzt wird.
Die Lösung: Sorgen Sie dafür, dass die Objektvariable ihren Gültigkeitsbereich verliert, indem der Bereich in eine separate Funktion ausgelagert wird.
Public Sub LoopFolder(Folder As Outlook.MAPIFolder) Dim Cnt As Long Dim Limit As Long Dim CountFrom As Long Dim CountTo As Long Dim Done As Long Dim Items As Outlook.Items Set Items = Folder.Items Cnt = Items.Count ' Grenze pro Durchlauf festlegen. Limit = 250 If Cnt <= Limit Then LoopItems Items, 1, Cnt Else Do While Done < Cnt CountFrom = Done + 1 CountTo = Done + Limit LoopItems Items, CountFrom, CountTo Done = CountTo If Done = Cnt Then Exit Do ElseIf Cnt - Done <= Limit Then Limit = Cnt - Done End If Loop End If End Sub Private Sub LoopItems(Items As Outlook.Items, _ ByVal CountFrom As Long, _ ByVal CountTo As Long _ ) Dim i As Long Dim obj As Object Dim Mail As Outlook.MailItem For i = CountFrom To CountTo Set obj = Items.Item(i) If TypeOf obj Is Outlook.MailItem Then Set Mail = obj ' Irgendwas mit dem Objekt machen End If Next End Sub
ReplyAll | |
Mit diesem Addin für Outlook erhalten Sie in verschiedenen Situationen eine Warnung, bevor Sie auf eine Email versehentlich allen anderen Empfängern antworten. |