tekknik
Goto Top

Mit VB-Skript aus Outlok Kalender Termine lesen.

Wie kann ich aus einem Outlook Kalender Termine mit VBA lesen?

Hat jemand ein kurzes Skript Beispiel?

Content-ID: 33457

Url: https://administrator.de/contentid/33457

Ausgedruckt am: 23.11.2024 um 09:11 Uhr

Biber
Biber 17.08.2006 um 16:11:04 Uhr
Goto Top
Moin Tekknik,
Du hast Dich bestimmt schon gewundert, warum so viele User Deinen Beitrag lesen und kein Schwein was schreibt.

Ein paar Gründe könnte ich nennen:
Mit VB-Skript aus Outlok Kalender Termine lesen.
Wie kann ich aus einem Outlook Kalender Termine mit VBA lesen?

Diese Beschreibung ist nicht sonderlich ergiebig.
Vorteil: Sie ließe sich per SMS versenden.

Nachteile:
- Ein "Hallo" hätte wohl nicht mehr in die SMS gepasst.
- Niemand kennt "Outlok"
- niemand weiß nach diesen zwei Sätzen, ob Du nun mit VB-Skript oder mit VBA die Termine lesen willst
- geschweige denn ob alle oder bestimmte oder die eines bestimmten Zeitraums oder die eines öffentlichen Ordners oder Deine eigenen...
- und erst recht nicht, ob die Termine Outlook-intern manipuliert/ergänzt werden sollen oder z.B. nach Excel kopiert oder wie oder was.

Und wo man/frau Dich abholen muss bei irgendwelchen Skript-Beispielen ist auch schwer erkennbar, wenn Du nicht postest, was Du denn schon hast.

Alles in allem ein so ärgerlicher Beitrag, dass ich den nicht unbeantwortet lassen kann.

Hier eine kurze Skizze unter VBA:
Private Sub ReadCalendarItems()
    Dim objApp As Application
    Dim objNS As NameSpace
    Dim objCalendar As MAPIFolder
    Dim objItem As AppointmentItem
    Dim strSubject As String
    Dim ObjRecipient As Recipient
    Set objApp = CreateObject("Outlook.Application")  
    Set objNS = objApp.GetNamespace("MAPI")  
    Set objCalendar = objNS.GetDefaultFolder(olFolderCalendar)
    For Each objItem In objCalendar.Items
        With objItem
        
        Debug.Print "Titel: " & .Subject & vbCrLf & _  
                    "Am:    " & .Start & " - " & .End & vbCrLf & _  
                    "Dauer: " & IIf(.Duration = 1440, "Ganztägig", .Duration & " Minuten") & vbCrLf & _  
                    "Body:  " & .Body & vbCrLf & _  
                    "Teilnehmer: " & .Recipients.Count  
          If .Recipients.Count > 0 Then
            For Each ObjRecipient In .Recipients
              Debug.Print ObjRecipient.Name & " / "  ' & ObjRecipient.Address  
            Next
          End If
        End With
    Next
    
End Sub

Beispiel-Output des Schnippsels im Debugfenster:
Titel: Geburtstag von James Smith
Am:    15.09.1975 - 16.09.1975
Dauer: Ganztägig
Body:  
Teilnehmer: 0
Titel: Meeting to discuss plans...
Am:    10.04.2003 22:43:00 - 10.04.2003 23:43:00
Dauer: 60 Minuten

Body:  Meeting with James Smith to discuss plans.
Teilnehmer: 0
Titel: nach Hause telefonieren
Am:    17.08.2006 15:30:00 - 17.08.2006 16:00:00
Dauer: 30 Minuten
Body:  
Teilnehmer: 2
Frank DerBiber / DerBiber@gmx.net
frank@will-her-weg.de / frank@will-her-weg.de

Wenn Du etwas anderes willst/meinst/brauchst, formuliere es bitte entsprechend.

Gruß
Biber