VSTO - Outlook - automatisch in den Kalender übernehmen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von jan99.

    VSTO - Outlook - automatisch in den Kalender übernehmen

    Moin!

    ich möchte über eine eigene Funktion Kalendereinträge erstellen und habe als Basis etwas gefunden unter learn.microsoft.com/de-de/visu…appointments?view=vs-2022

    Mein Code sieht jetzt wie folgt aus wobei ich schon versucht habe einen Termin für den gesamten Tag zu erstellen:

    VB.NET-Quellcode

    1. Private Sub bt_HO_Kalender_Click(sender As Object, e As RibbonControlEventArgs) Handles bt_HO_Kalender.Click
    2. Try
    3. ' https://learn.microsoft.com/de-de/dotnet/api/microsoft.office.interop.outlook.appointmentitem?view=outlook-pia
    4. Dim newAppointment As Outlook.AppointmentItem = CType(Globals.ThisAddIn.Application.CreateItem(Outlook.OlItemType.olAppointmentItem), Outlook.AppointmentItem)
    5. newAppointment.AllDayEvent = True ' ganztätig Tag
    6. newAppointment.Start = DateTime.Now.AddHours(2) ' Beginn
    7. 'newAppointment.[End] = DateTime.Now.AddHours(3) ' Ende
    8. newAppointment.End = DateTime.Now.AddHours(3) ' Ende
    9. newAppointment.Location = "ConferenceRoom #2345" 'Ortsangabe
    10. newAppointment.Body = "We will discuss progress on the group project." ' Textfeld
    11. newAppointment.Subject = "Group Project" ' Betreff
    12. 'newAppointment.BusyStatus = Microsoft.Office.Interop.Outlook.OlBusyStatus.olOutOfOffice ' abwesend
    13. newAppointment.BusyStatus = Microsoft.Office.Interop.Outlook.OlBusyStatus.olWorkingElsewhere ' an einem anderen Ort tätig
    14. 'newAppointment.Recipients.Add("Roger Harui")
    15. 'Dim sentTo As Outlook.Recipients = newAppointment.Recipients
    16. 'Dim sentInvite As Outlook.Recipient = Nothing
    17. 'sentInvite = sentTo.Add("Holly Holt")
    18. 'sentInvite.Type = CInt(Outlook.OlMeetingRecipientType.olRequired)
    19. 'sentInvite = sentTo.Add("David Junca ")
    20. 'sentInvite.Type = CInt(Outlook.OlMeetingRecipientType.olOptional)
    21. 'sentTo.ResolveAll()
    22. newAppointment.Save()
    23. newAppointment.Display(True)
    24. Catch ex As Exception
    25. MessageBox.Show("Es ist folgender Fehler aufgetreten: " & ex.Message)
    26. End Try
    27. End Sub


    Nach meinem Verständnis sollte mit .SAVE und .DISPLAY wird der Eintrag erstellt und angezeigt.

    Aber der Dialog bleibt offen.

    Ich habe nun noch folgendes gefunden:

    VB.NET-Quellcode

    1. newAppointment.Close(SaveMode:=Microsoft.Office.Interop.Outlook.OlInspectorClose.olSave)


    Wenn ich das hinter das Display setze, dann bleibt der Dialog dennoch offen!

    ???

    Gruß Jan