Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
696to700
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
696to700
696to700
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Outlook-Ordner und Mails listen

Outlook-Ordner und Mails listen
23.11.2005 12:07:01
Dieter
Hallo,
ich versuche aus Excel heraus Ordner-Strukturen und zugehörige Mails in Outlook auszulesen und in Excel einzutragen. Dies funktioniert bis zur 1. Ordnerebene mit folgendem Code:

Sub OutlookOrdnerListen()
Dim objOutlook As Object
Dim objOrdner As Object
Dim objSpace As Object
Dim i As Integer
Dim ii As Integer
Dim iii As Integer
Dim j As Integer
Dim intZähler As Integer
Dim dblGröße As Double
Dim mf As MAPIFolder
Set objOutlook = CreateObject("Outlook.Application")
Set objSpace = objOutlook.GetNamespace("MAPI")
intZähler = 1
For i = 1 To objSpace.Folders.Count
intZähler = intZähler + 1
Set objOrdner = objSpace.Folders(i)
dblGröße = 0
For ii = 1 To objOrdner.Folders.Count
Sheets(1).Cells(intZähler, 2) = objOrdner.Folders(ii)
For iii = 1 To objOrdner.Folders(ii).Items.Count
Sheets(1).Cells(intZähler, 3) = objOrdner.Folders(ii).Items(iii)
intZähler = intZähler + 1
Next
intZähler = intZähler + 1
Next
intZähler = intZähler + 1
Next
End Sub

Hier sind keine Unterordner enthalten. Wie kann ich hier Unterordner mit einbeziehen ?
Gruß
Dieter Steffen

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook-Ordner und Mails listen
23.11.2005 12:57:55
Rolf
Hallo Dieter,
vielleicht hilft dir das
fG
Rolf
'Prozedur aus einem leeren Tabellenblatt starten

Sub Start_All_Mails_Anzeigen()
alle_mails_anzeigen   'Start des Makros!!!
End Sub

Public

Sub alle_mails_anzeigen(Optional ActFolder As Object)
'by Fritz M. hf / Oktober 2004
Dim mail    As Object
Dim fold    As Object
Static k    As Long
Static v As Long
On Error Resume Next 'weiter, trotz fehlendem Betreff, Sender o.Sendedatum
If ActFolder Is Nothing Then
Set outlk = CreateObject("Outlook.Application")
Set struc = outlk.GetNamespace("MAPI").Folders
Set persö = struc.item("Persönliche Ordner")
k = 1
v = 0
Else
Set persö = ActFolder                   'aktuellen Ordner zuweisen
v = v + 1                               'Odner zählen
If v >= 11 Then                          'Standardordner auslassen
For Each mail In persö.Items            'alle Elemente des Ordners darstellen
k = k + 1                           'Zeilenzähler
Cells(k, 1) = persö.Parent.Name
Cells(k, 2) = persö.Name
Cells(k, 3) = mail.Subject
Cells(k, 4) = mail.SenderName
Cells(k, 5) = mail.SentOn
Next mail
End If
End If
For Each fold In persö.Folders
alle_mails_anzeigen fold    'rekursiver Aufruf, damit alle Unterordner
'abgearbeitet werden
Next fold
End Sub

Anzeige
AW: Outlook-Ordner und Mails listen
24.11.2005 06:46:12
Dieter
Hallo Rolf,
vielen Dank. Dein Programm habe ich leicht modifizier: funktioniert soweit.
Vielleicht kannst Du mir auch noch sagen, wie ich die aktuellen Ordnergrößen
ermitteln kann, die in Outlook in den Eigenschaften angezeigt werden.
Hinweis: die Größe des einzelnen Mails kann ich mit bezogen auf Dein o.g.
Programm mit mail.size ermitteln. Das hilft mir jedoch nicht abschließend,
da die Ordnergröße von der Summe der Größe der einzelnen Mails abweichen kann.
MfG
Dieter
Ordnergrößen
24.11.2005 11:09:44
Rolf
Hallo Dieter,
die Frage kann ich dir leider nicht beantworten.
fG
Rolf
AW: Ordnergrößen
24.11.2005 11:46:00
bst
Auch Hallo,
so wie ich das verstehe geht das im Outlook Objekt Modell nicht, wie anscheinend sehr vieles :-(
Man braucht hierzu entweder CDO (wenn Du Glück hast ist das bei Dir installiert) oder Redemption http://www.dimastr.com/redemption/ welches in der neuen Version 4 komplett CDO ersetzen können soll. 'Der Link' zu CDO ist wohl dieser: http://www.cdolive.com/
Anbei mal ein bescheidener Versuch meinerseits, vielleicht geht's ja bei Dir.
HTH, Bernd
--
Option Explicit

' von hier kopiert: http://www.pcreview.co.uk/forums/thread-1836951.php

'You can use the folder property PR_MESSAGE_SIZE in CDO 1.21 code to
'get the approximate size of the folder. Some hidden messages for
'rules, archive settings and so on might not be tabulated in that
'property, I'm not sure about that. CDO property tags are listed at
'http://www.cdolive.com/cdo10.htm and there's CDO sample code at
'http://www.cdolive.com/cdo5.htm.
'
'CDO 1.21 is an optional installation for Outlook 2000 and later, so
'you might have to install CDO from the Office CD as an Outlook
'optional feature if you don't already have it installed.

Const CdoPR_MESSAGE_SIZE = &HE080003

Public Function GetFolderSize(f As MAPIFolder) As Double ' oder LONG ?
   'Requires a project reference to CDO 1.21 (CDO.DLL)
   Dim objOutlook As Outlook.Application
   Dim objCDO As MAPI.Session
   Dim objFolder As MAPI.Folder
   Dim objFields As MAPI.Fields
   Dim strID As String
   
   'On Error Resume Next
   
   ' Instantiate an Outlook Application object.
   Set objOutlook = CreateObject("Outlook.Application")
   
   'Use the given Folder and get its EntryID
   strID = f.EntryID
   
   'Then set up a CDO Session using a piggy-back login
   Set objCDO = CreateObject("MAPI.Session")
   objCDO.Logon "", "", False, False
   
   'Now get the item as a CDO Message
   Set objFolder = objCDO.GetFolder(strID)
   
   'Now get the size from the folder
   Set objFields = objFolder.Fields
   GetFolderSize = objFields.Item(CdoPR_MESSAGE_SIZE).Value
   
   objCDO.Logoff
   
   Set objFields = Nothing
   Set objFolder = Nothing
   Set objCDO = Nothing
   Set objOutlook = Nothing
End Function

Sub TestIt()
   Debug.Print GetFolderSize(ActiveExplorer.CurrentFolder)
End Sub

Anzeige
AW: Ordnergrößen
24.11.2005 12:22:08
Rolf
Hi bernd,
danke für deine, wie immer, profunden Tipps.
Was mich angeht, werde ich allerdings die Finger davon lassen,
und im Zweifel dieselben betätigen.
Herzliche Grüße
Rolf
AW: Ordnergrößen
24.11.2005 12:46:45
bst
Hi Rolf,
Danke für die Blumen. Leider hatte ich das nur im Outlook VBA getestet, nicht in Excel.
Dort läuft's so noch nicht. ActiveExplorer.CurrentFolder gibt's halt nur in OL.
cu, Bernd

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige