Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Zugriff auf Outlook Ordner

325 views
Skip to first unread message

Ralf Hinke

unread,
May 10, 2001, 12:53:18 PM5/10/01
to
Hi Newsgroup,

das Outlookobjekt ist mir noch etwas unklar.

Set objOutl = CreateObject("outlook.Application")
Set objNameSpace = objOutl.GetNameSpace("MAPI")

z.B. für Outbox
Set out = objNameSpace.GetDefaultFolder(6)

Doch wie komme ich in den selbst angelegten Ordner z.B. "Archiv"

Bin für jeden Hinweis dankbar.

Gruß Ralf


G. Born

unread,
May 11, 2001, 1:56:37 AM5/11/01
to
Hallo Ralf,

hier einige Tipps von mir. Habs nie gebraucht, aber: Schau in die
Outlook-VBA-Hilfe - dort sollten alle Objekte und ihre Methoden beschrieben
sein. Außerdem ist das Outlook Objektmodell unter http://msdn.microsoft.com
im Web dokumentiert. Ich glaube mich auch zu erinnern, entsprechende
Beispiele im Web (vielleicht bei C. Washington oder bei Daren Thiel - beide
Links finden sich im WSH Bazaar) gesehen zu haben.

Hab gerade in der (gedruckten) MS Outlook Reference (OL 97) nachgesehen. Im
Objektmodell ist das Objekt "Folders" für die Zugriffe auf Ordner zuständig.
Es liefert eine Collection zurück. Du könntest folgende Befehlssequenz
verwenden (die ersten Befehle mit dem > sind aus Deinem Code-Snippet), um
einen definierten Ordner als Objekt zu referenzieren:

> Set objOutl = CreateObject("outlook.Application")
> Set objNameSpace = objOutl.GetNameSpace("MAPI")

Set oFolder = objOutl.Folders("Archiv")

Lässt Du dagegen den Namen weg, liefert die Folders-Methode eine Auflistung
aller Folder-Objekte, die Du dann über eine For Each-Schleife beackern
kannst. Ich habe den obigen Code aber nicht ausprobiert - hoffe aber, das er
es tut.

Die GetDefaultFolder-Methode liefert Dir dagegen immer nur den
Standardordner für eine Kategorie (z.B. Kontakte, E-Mails, Appointments)
zurück. Die Kategorie wird über die im GetDefaultFolder-Aufruf als Parameter
übergebene Konstante (olFolderCalendar, olFolderInbox etc.) festgelegt.

Dies und mehr findest Du in der MS Outlook Language Referenz, die meines
Wissens auch online unter msdn.microsoft.com zu finden ist (nach Outlook
suchen oder im Inhaltsverzeichnis der linken Spalte nach Office SDK oder
ähnlichem suchen - hab den genauen Begriff nicht im Kopf).

Noch ein Tipp: In Deinen Skripten solltest Du nicht mit Konstanten wie 6
etc. arbeiten. Hier Dein Beispiel:

Set out = objNameSpace.GetDefaultFolder(6)

Wenn Du keine WSF-Dateien mit Referenzen auf die TypeLibraries nutzt (dann
sind die benannten Konstanten wie olFolderCalendar automatisch im Skript
bekannt), solltest Du die im Programm benötigten Konstanten als benannte
Konstanten im Programmkopf vereinbaren. Ein Skript liest sich wesentlich
besser, wenn dort so etwas steht:

...
Const olFolderInbox = xx ' Wert für die Konstante als xx einsetzen
Const olFolderOutbox = xx

....

Set inFolder = objNameSpace.GetDefaultFolder(olFolderInbox)
Set outFolder = objNameSpace.GetDefaultFolder(olFolderOutbox)

Die Konstante von Outlook bekommst Du über den Objektbrowser (z.B. aus Word
oder VB) heraus (aber das hast Du vermutlich bereits herausgefunden).

Ich hoffe es hilft. Gib doch ne Rückmeldung, wenn es geklappt hat - andere
Leser in diesem Forum können das sicher auch brauchen.

G. Born

--
______________________________________
Check out the WSH Bazaar at www.borncity.de


"Ralf Hinke" <ralf....@12move.de> schrieb im Newsbeitrag
news:9deh2b$2q7$1...@wrath.news.nacamar.de...

Ralf Hinke

unread,
May 12, 2001, 11:41:30 AM5/12/01
to
Hallo Günter,

zuerst einmal danke für Deine Tips. Vielleicht liegt es ja am Wetter,
jedenfalls klappte es nicht so richtig.

der 1. Versuch:

Set myOlApp = CreateObject("Outlook.Application")
Set myFolders = myOlApp.Folders

For Each myItem in myFolders
Msgbox myItem
Next

lieferte nur 'Objekt unterstützt Eigenschaft oder Methode nicht
myOlApp.Folders'

Erst zum Sonnenuntergang gelang der Durchbruch mit dem Zugriff auf alle
Ordner und zwar wie folgt:

---- schnipp ---
Set myOlApp = CreateObject("Outlook.Application")
Set myNS = myOlApp.GetNameSpace("MAPI").Folders("Persönliche Ordner")
Set myFolders = myNS.Folders

For Each myItem in myFolders
Msgbox myItem
Next
---- schnapp ---

Gruß Ralf

"G. Born" <nospam...@web.de> schrieb im Newsbeitrag
news:#s$9B8d2AHA.1880@tkmsftngp02...

Mesch, Norbert

unread,
May 15, 2001, 5:53:11 AM5/15/01
to
Hi Ralf,

willst Du an einen Ordner Archiv in deinem Informationsspeicher z.B.
(Persönlicher Ordner o. Postfach) herankommen? Oder meinst Du das Archiv,
dass bei der Autoarchivierung in einem neuen Persönlichen Ordner erstellt
wird? Wenn Du über das Outlook Object Model nicht rankommst, nimm einfach
CDO. Dort gehst Du über die InfoStore Collection. Sie gibt alle vorhandenen
Informationsspeicher zurück (also Postfächer, persönliche Ordner, und
öffentliche Ordner). In jedem InfoStore kannst Du Dich druch die
Ordnerstruktur "hangeln".
Beispiele findest Du unter www.cdolive.com ist scheinbar im Augenblick nicht
erreichbar.

good luck

norbert

"Ralf Hinke" <ralf....@12move.de> schrieb im Newsbeitrag
news:9deh2b$2q7$1...@wrath.news.nacamar.de...

0 new messages