vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Outlook-VBA: ? Objekt_Event => Appointment.Item Objekt / month view 
Autor: tomybyte
Datum: 29.11.19 13:39

Beispiel:
Nach dem Öffnen von Outlook wähle ich die Kalender-Darstellung aus, mit der Monatsansicht (month view) und klicke auf ein Tagesfeld mit einem Termin. Beim Anklicken wird der Termin ausgewählt und kann dann editiert und der Betreff verändert werden, danach erfolgt auto-save.

Zur Entwicklung einer Anwendung benötige ich den Event-Handler für diesen Vorgang. Das zugrunde liegende Appointment.Item bezieht sich auf die Items Collection z.B.
Application.GetNamespace("MAPI").GetDefaultFolder(olFolderCalendar).Items
Dieses Appointment.Item sollte Teil der entsprechenden Outlook.Selection sein, doch diese hat keinen Event. Meine Versuche, den relevanten Event zu finden, waren leider erfolglos.

Kann mir jemand sagen, wie ich auf das selektierte Appointment.Item Objekt zugreifen kann?

Gruß

Tom

Beitrag wurde zuletzt am 29.11.19 um 13:40:19 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Outlook-VBA: ? Objekt_Event => Appointment.Item Objekt / month view 
Autor: tomybyte
Datum: 02.12.19 10:33

Anscheinend beschäftigen sich nur sehr wenige mit der Kalender Automatisierung von Outlook per VBA.
So musste ich durch viel Recherchieren in der Dokumentation und anderen Quellen sowie durch vieles Ausprobieren die Lösung selbst herausfinden. Diese wird ergänzt durch die Identifizierung des zuletzt angeklickten Tages. Dies ist für mich relevant, da ich sonst nicht weiß an welchem Tag das Datum entfernt wurde, da der Event 'ItemRemove' das Item Objekt nicht verarbeitet. Vielleicht hat jemand dieses Problem, so veröffentliche ich die Lösung. Folgender Code liegt im Klassenmodul ThisOutlookSession:

Option Explicit
 
Public WithEvents Termine As Outlook.Items
 
Private Sub Application_Startup()    
    Set Termine = Application.Session.GetDefaultFolder(olFolderCalendar).Items
End Sub
 
Private Sub Termine_ItemAdd(ByVal Item As Object)
Dim selDay As Date
 
    MsgBox "Termine_ItemAdd => " & Item.Start & " - " & Item.Subject	
    selDay = GetSelectedDay	
    MsgBox CStr(selDay)
End Sub
 
Private Sub Termine_ItemChange(ByVal Item As Object)
    Dim selDay As Date
 
    MsgBox "Termine_ItemChange => " & Item.Start & " - " & Item.Subject
    selDay = GetSelectedDay
    MsgBox CStr(selDay)
End Sub
 
Private Sub Termine_ItemRemove()
Dim selDay As Date
 
    MsgBox "Termine_ItemRemove"
    selDay = GetSelectedDay
    MsgBox CStr(selDay)
End Sub
 
Function GetSelectedDay() As Date
 Dim objView As CalendarView
 
 ' Check if the current view is a calendar view.
 If Application.ActiveExplorer.CurrentView.ViewType = _
    olCalendarView Then
 
    ' Obtain a CalendarView object reference for the current calendar view.
    Set objView = Application.ActiveExplorer.CurrentView
 
    GetSelectedDay = objView.SelectedStartTime
 End If
End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel