2016-06-27 15 views
1

Ich schreibe ein Excel-Makro, das mithilfe von Benutzeranmeldeinformationen eine Verbindung zu einer Reihe von Outlook- (Exchange-) Kalendern herstellt und die Kalenderdaten analysiert, um sie in einer Tabelle auszugeben. Ich konnte die Kalenderdaten aus meiner lokalen Outlook-Anwendung abrufen, kann aber nicht herausfinden, wie ich mich bei einem anderen Konto anmelden kann. Ist das möglich? Es muss eine Möglichkeit geben, auf Exchange-Kalender zuzugreifen. Von dem, was ich bereits im Internet gesammelt habe, kann ich vielleicht MAPI verwenden? Ich weiß einfach nicht, wie es für diesen Fall ist.Wie melde ich mich bei einem Exchange-Kalender von Excel an

Sub ListAppointments() 
'Dim mapi_session As MSMAPI.MAPISession 
'Set mapi_session = CreateObject("MSMAPI.MAPISession") 
Dim olApp As Object 
Dim olNS As Object 
Dim olFolder As Object 
Dim olApt As Object 
Dim myStart As Date 
Dim myEnd As Date 
Dim NextRow As Long 
Dim today, date1, date2 
today = VBA.Format(Date, "yyyy-mm-dd") 

myStart = VBA.Format(Year(today) & "-" & Month(today) & "-01", "yyyy-mm-dd") 
myEnd = DateAdd("m", 3, myStart) 
date1 = InputBox("Enter range beginning date", , myStart) 
date2 = InputBox("Enter range end date", , myEnd) 
Set olApp = CreateObject("Outlook.Application") 

Set olNS = olApp.GetNamespace("MAPI") 
olNS.Logon "", "", False, True 
Set olFolder = olNS.GetDefaultFolder(9) 'olFolderCalendar 

Range("A1:D1").Value = Array("Subject", "Start", "End", "Location") 

NextRow = 2 
For Each olApt In olFolder.Items 
    If olApt.Start >= myStart And olApt.End <= myEnd Then 
     Cells(NextRow, "A").Value = olApt.Subject 
     Cells(NextRow, "B").Value = olApt.Start 
     Cells(NextRow, "C").Value = olApt.End 
     Cells(NextRow, "D").Value = olApt.Location 
     NextRow = NextRow + 1 
    End If 
Next olApt 

Set olApt = Nothing 
Set olFolder = Nothing 
Set olNS = Nothing 
Set olApp = Nothing 

Columns.AutoFit 

End Sub 

Das ist alles was ich bis jetzt habe, was mich nur lokale Outlook Daten greifen lässt.

Antwort

1

Verwenden Sie olNS.CreateRecipient/olNS.GetSharedDefaultFolder(..., olFolderCalendar), um den Kalenderordner eines anderen Exchange-Postfachs zu öffnen.

Verwandte Themen