Mit VB-Script mehrere Outlook Kalender vergleichen

Hallo,

für die Arbeit soll ich ein Script schreiben, welches die Termine aus mehreren Outlook Kalendern vergleicht. In einem Eingabefeld sollen die Mitarbeiterkürzel der zu vergleichenden Kalender so wie der zu prüfende Zeitraum angegeben werden. Was ich bisher rausgefunden habe ist, wie ich mittels einer for each Schleife die kompletten Termine für einen einzelnen Mitarbeiter durchlaufe. Hier mal mein Code:

Set OL = CreateObject(„Outlook.Application“)
Set olns = OL.GetNamespace(„MAPI“)
Set mitarbeiter = olns.CreateRecipient(„Seppel Huber“)
Set SharedFolder = olns.GetSharedDefaultFolder(mitarbeiter, 9)
Set oEintraege = SharedFolder.Items
For Each oAppt In oEintraege
wscript.echo „start:“ & oAppt.Start & " end:" & oAppt.End & "betreff: " & oAppt.Subject
Next

So ich es sehe, muss ich diese innere Schleife nun in eine äußere Schleife packen, welche den Vorgang für jeden Mitarbeiter durchführt. Aber, wie sage ich dem Script nun:

  1. Welchen Mitarbeiter ich explizit meine? Unter Java kenne ich den String Tokenicer. Damit kann ich einen String in Teilsegmente zerlegen. Unter PHP ist das die Funktion Explode. Ich möchte also den im Textfeld eingegebenen string aus Mitarbeiterkürzeln und dem Zeitraum sinnvoll zerlegen. Also wenn ein Mitarbeiter Seppel Huber heißt, bekommt er das Kürzel sh. Ein anderer vielleicht August Gruber, der bekommt dann das Kürzel ag.

  2. Wie übertrage ich das vom User eingegebene Datum in ein für Outlook verständliches Format? Also ein Suchstring für die Kollegen Huber und Gruber würde lauten:
    ag sh 21.06.2016 08:00 16:30

Als Ausgabe wünsche ich mir dann in etwa:
Seppel Huber, 08:00 bis 09:00, Mails vom Vortag aufarbeiten
August Gruber, 08:00 bis 09:30, Besprechung Firmenjubiläum

Für Eure Hilfe bedanke ich mich schon mal im Voraus

Richard

Servus,

ich habe ein Bissle an dem Projekt weitergebastelt und muss mich dabei irgendwie verzettelt haben. Nun erhalte ich beim Ausführen, im Eingabefeld erst ein Datum (tt.mm.jjjj) gefolgt von einem Mitarbeiterkürzel folgende Fehlermeldung:

Zeile: 56
Zeichen: 3
Fehler: Fehler beim Ausführen der Operation.
Code: 80004005

Hat jemand einen Tip, wo es bei meinem Script hängen könnte?

Hier mal der Code:

'on Error Resume Next
Dim searchString, msg
Public resultSet, publicStartDate

Set OL = CreateObject(„Outlook.Application“)
Set olns = OL.GetNamespace(„MAPI“)

evaluateSearchString(inputbox ("Suche: ", „EasyCal (? für Hilfe)“))
MsgBox „ResultSet“,resultSet & " " & publicStartDate

function evaluateSearchString (string)
TokenizedString=Split(string)
for each token in TokenizedString
getCalendar(resolveMAName(token))
next
end Function

function resolveMAName(term2)
dim resolvedMAName
select case term2
case „tt“
resolvedMAName = „Tanja Test“
case „sh“
resolvedMAName = „Seppel Huber“
case else
resolvedMaName = term2
wscript.echo „term2 " & term2 & " wird als Datum behandelt“
end select
if not resolvedMaName = null then
wscript.echo "es ist bei resolvedMaName was sinnvolles rausgekommen " &resolvedMaName
resolveMAName = resolvedMAName
end if
end Function

Function getCalendar(MaName)
wscript.echo MaName
if isDate(MaName) or MaName = „morgen“ or MaName = „heute“ then
processDateTime(MaName)
else
Set mitarbeiter = olns.CreateRecipient(MaName)
Set SharedFolder = olns.GetSharedDefaultFolder(mitarbeiter, 9)
Set oItems = SharedFolder.Items
For Each oAppt In oItems
startTime = right(oAppt.Start,8)
endTime = right(oAppt.End,8)
startDate = left(oAppt.Start,10)
endDate = left(oAppt.End,10)
if startDate = publicStartDate then
msg = mitarbeiter.Name & " start: " & startDate & " " & startTime & " end: " & endDate & " " & endTime & „sub:“ & oAppt.Subject
resultSet = msg
wscript.echo msg
end If
'msgbox „in function getCalendar“,msg & " " & resultSet
'Exit for
Next
end if
End Function

function processDateTime(dateTimeString)
'wscript.echo dateTimeString
publicStartDate = dateTimeString
end Function

Vielen Dank im Voraus

Richard