Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Outlook öffnen, aber inkl. freigegebene Kalender

Forumthread: Outlook öffnen, aber inkl. freigegebene Kalender

Outlook öffnen, aber inkl. freigegebene Kalender
14.07.2025 14:08:31
earlycon
Hallo zusammen, ich möchte hier einmal um eure Unterstützung bitten.
Mit folgendem Code prüft Excel, ob Outlook bereits geöffnet ist und aktiviert dann den Kalender im Vordergrund. Ist Outlook nicht geöffnet, wird Outlook gestartet und ebenfalls der Kalender in den Vordergrund geholt. Soweit klappt alles gut.

Standardmäßig habe ich jedoch immer meinen eigenen und zusätzlich 2-3 weitere (freigegebene) Kalender geöffnet. Mit dem Code wird jedoch immer nur mein eigener Kalender geöffnet. Habt Ihr eine Idee, wie man den eigenen Outlook-Kalender inkl. den ausgewählten (freigegebenen) Kalendern öffnen kann ?

Besten Dank und viele Grüße
Stefan



Sub OutlookKalender_öffnen()

' Variablen dimensionieren
Dim objOutlook As Outlook.Application
Dim olObj, objNameSpace, myFolder As Object

On Error Resume Next
Set objOutlook = GetObject(, "Outlook.Application")

' Prüfen, ob Outlook bereits geöffnet, dann Outlook in den Vordergrund, sonst Outlook neu öffnen
If Err.Number = 0 Then
' Outlook ist bereits geöffnet, Kalender aufrufen
objOutlook.ActiveExplorer.Activate
objOutlook.ActiveExplorer.SelectFolder myFolder
objOutlook.ActiveWindow.WindowState = olMaximized
Else
' Outlook ist nicht geöffnet, neue Outlook-Instanz wird geöffnet
Shell ("Outlook.exe")
Set objOutlook = GetObject(, "Outlook.Application")
Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set myFolder = objNameSpace.GetDefaultFolder(9) ' 9 = Kalender
myFolder.Display
objOutlook.ActiveExplorer.Activate
objOutlook.ActiveExplorer.SelectFolder myFolder
objOutlook.ActiveWindow.WindowState = olMaximized
End If

'Clean up
Set objOutlook = Nothing
Set objNameSpace = Nothing
Set myFolder = Nothing
End Sub


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Outlook öffnen, aber inkl. freigegebene Kalender
15.07.2025 10:29:04
Oberschlumpf
Hi Stefan,

versuch mal das hier:
https://makrothek.de/index.php/programmiertipps/vba-tipps/30-in-outlook-per-vba-auf-freigegebene-kalender-und-ordner-zugreifen

Das sieht zwar etwas tricky aus, aber es wird auch erklärt, warum es nicht so einfach ist, auf freigegeb. Kalender zuzugreifen.
Hilfts?
Nein? Ne andere Idee hab ich nicht. Ich kann nix testen, weil in meinem OL nur der eigene, aber kein weiterer Kalender existiert.

Ciao
Thorsten
Anzeige
AW: Outlook öffnen, aber inkl. freigegebene Kalender
15.07.2025 14:03:43
earlycon
Hi Thorsten, vielen Dank, dass erklärt ein wenig die Problematik.
Mit ein wenig mehr Zeit, schaue ich mir das bei Gelegenheit genauer an...

Viele Grüße
Stefan
AW: Outlook öffnen, aber inkl. freigegebene Kalender
15.07.2025 12:20:06
Ulf
Hi,
die Deklarationen in deinem Code sollten wenn kommasepariert den Typ angeben, VBA will das so.
Im Falle eines bereits geöffneten Outlooks ist myFolder leer, also sinnlos?!
Hier zwei Quellen, die den Weg zeigen
https://www.experts-exchange.com/questions/28287459/Get-list-of-shared-calendars-using-VBA.html
und
https://www.slipstick.com/developer/code-samples/select-multiple-calendars-outlook/
mangels Evaluation kann ich keinen fertigen Code liefern.
hth
Ulf
Anzeige
AW: Outlook öffnen, aber inkl. freigegebene Kalender
15.07.2025 14:05:25
earlycon
Hi Ulf, vielen Dank für die beiden Links 👍🏼
Im Moment ist es etwas stressig auf der Arbeit, aber ich schaue mir die diese bald genauer an.

Viele Grüße
Stefan
AW: Beispiel
15.07.2025 13:25:54
Fennek
Hallo,

vor einiger Zeit habe ich diese beiden Codes getestet:


Sub Select_module()
Dim LL, olMod As String

LL = Array("E-Mail", "Kalender", "Personen", "Aufgaben")
For Each L In LL
Select Case L
Case Is = "E-Mail": olMod = olModuleMail
Case Is = "Kalender": olMod = olModuleCalendar
Case Is = "Personen": olMod = olModuleContacts
Case Is = "Aufgaben": olMod = olModuleTasks
End Select

With ActiveExplorer.NavigationPane
Set .CurrentModule = .Modules.GetNavigationModule(olMod)
End With

Next L
End Sub

Sub SharedCalendar()
Dim NSp As NameSpace: Set NSp = GetNamespace("MAPI")
Dim iRes As Recipient, ShCal As Folder

Set iRes = NSp.CreateRecipient("[EMail-Adress]")

iRes.Resolve
If iRes.Resolved Then

Set ShCal = NSp.GetSharedDefaultFolder(iRes, olFolderCalendar)
Debug.Print ShCal.Folders.Count, ShCal.Items.Count
End If

Set iRes = Nothing
Set NSp = Nothing

End Sub


mfg
Anzeige
AW: Beispiel
15.07.2025 14:52:08
earlycon
Danke Fennek, schaue ich mir in Ruhe einmal an.
Vielleicht kann ich meinen Code damit anpassen...

Viele Grüße
Stefan
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18