VBA - Aus laufendem Outlook Profil auslesem

28/02/2009 - 17:45 von Josef Zins | Report spam
Hallo zusammen

in OL 2007 gibt es ja die Möglichkeit, das in einer laufenden
Outlook-Sitzung verwendete Profil mit .CurrentProfileName über VBA
auszulesen.

Leider ist dies in OL 2003 nicht möglich.

Ich habe nun einen Code von Sue Mosher durch viel Googeln ausgegraben,
welcher das auch in OL 2003 erledigt.

Set oApp = GetObject(, "Outlook.Application")
If not oApp Is Nothing Then
Dim objSession As New Session
objSession.Logon "", "", False, False
sProfileName = objSession.Name.ToString
End If

Leider habe ich mit der Zeile
Dim objSession As New Session
Probleme.

Der Compiler meldet "Benutzerdefinierter Typ nicht definiert".

Ich komm einfach nicht drauf, was hier in Office 2003 fehlt oder falsch ist.

Kann mir jemand helfen ?

Grüsse
Josef Zins



Teile dein Wissen mit anderen. Dies ist eine gute Möglichkeit,
Unsterblichkeit zu erlangen (Dalai Lama)
 

Lesen sie die antworten

#1 Peter Marchert
01/03/2009 - 07:45 | Warnen spam
On 28 Feb., 17:45, Josef Zins wrote:
Hallo zusammen



Guten Morgen Josef Zins,

in OL 2007 gibt es ja die Möglichkeit, das in einer laufenden
Outlook-Sitzung  verwendete Profil mit .CurrentProfileName über VBA
auszulesen.

Leider ist dies in OL 2003 nicht möglich.

Ich habe nun einen Code von Sue Mosher durch viel Googeln ausgegraben,
welcher das auch in OL 2003 erledigt.

Set oApp = GetObject(, "Outlook.Application")
If not oApp Is Nothing Then
        Dim objSession As New Session
        objSession.Logon "", "", False, False
        sProfileName = objSession.Name.ToString
End If

Leider habe ich mit der Zeile
        Dim objSession As New Session
Probleme.

Der Compiler meldet "Benutzerdefinierter Typ nicht definiert".



In dem Codebeispiel von Sue steht im Kommentar "CDO can piggyback on
that existing session". D. h. CDO muss installiert sein (ist bei
Standardinstallationen in der Regel nicht der Fall).

Wenn es für einen oder mehrere Kunden sein soll, dann ist die
Verwendung von CDO nicht zu empfehlen, da sie der Kunde oft erst
nachinstallieren müsste. Außerdem ist CDO unter 2007 nicht mehr
verfügbar (falls der Code für mehrere Versionen funktionieren soll).
Die bessere Alternative ist RDO (Teil der Redemption):
http://www.dimastr.com/redemption/

Beispiel:

Public Sub ProfileName()

Dim objSession As Object

Set objSession = CreateObject("Redemption.RDOSession")

objSession.MAPIOBJECT = Outlook.Session.MAPIOBJECT

Debug.Print objSession.ProfileName

Set objSession = Nothing

End Sub

Eventuell ist für Dich auch die ProfMan.Dll (auch unter www.dimastr.com
zu finden) interessant, da sie noch weitere Funktionen für die
Profilverwaltung zur Verfügung stellt.

Freundlicher Gruß
Peter Marchert

Infos, Workshops & Software für
Outlook®: www.outlook-stuff.com

Ähnliche fragen