freakms
Goto Top

Outlook Terminvorlage automatisch markiertes Datum

Liebe Admin-Gemeinde,

ich würde gerne Terminvorlagen in Outlook erstellen. Für mails habe ich Makros

Public Sub Template_Kim()
Dim obj As Object
Dim File As String
File = "C:\Users\xxx\AppData\Roaming\Microsoft\Templates\Vorlage_Export_Kim.oft"
Set obj = Application.CreateItemFromTemplate(File)
obj.Display
End Sub


Das ganze würde ich gerne auch als Termin machen. Und zwar so, dass wenn ich ein Tag im Kalender anwähle, dieser automatisch als Beginnt und End Datum eingetragen wird und ich die Uhrzeiten automatisch auch irgendwie über den Code setzen kann.

Die Uhrzeit ist immer die gleiche.

Beim Speichern als Template übernimmt er leider nicht die Zeiten.

Vielleicht habt ihr ja ne Idee...Danke!

Gruß, der Freak

Content-Key: 214370

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

Printed on: April 18, 2024 at 22:04 o'clock

Member: colinardo
colinardo Aug 15, 2013 updated at 09:43:32 (UTC)
Goto Top
Hallo "der Freak",
das sollte dir helfen:
In Zeile 2 trägst du noch deine Vorlage ein, in Zeile 3 die Startzeit und in Zeile 4 die Dauer des Termins.
Da Outlook keine Funktion zum Abfragen des aktuell markierten Datums im Kalender bereitstellt, muss man sich eines Tricks bedienen um daran zu kommen, indem man mit der Outlook-Eigenen Funktion(Menübefehl) zum Erstellen eines neuen Termins ein Appointment-Objekt erstellt dessen Start-Datum man extrahiert und weiterverarbeitet. Dieses temporäre Appointment wird dann wieder geschlossen, und das benutzerdefinierte Appointment mit den richtigen Zeiten geöffnet.
Sub createAppointmentFromTemplate()
    Const PATH_VORLAGE = "C:\Users\xxx\Desktop\testtermin.oft"  
    Const STARTTIME = "10:30"  
    Const DURATION = 90
    Dim objAppointment As AppointmentItem, objTemp As AppointmentItem, objExplorer As Explorer
    Dim objCD As CommandBarButton
    Dim objFolder As Folder
    
    Set objExplorer = ActiveExplorer
    If Not objExplorer Is Nothing Then
        Set objFolder = objExplorer.currentFolder
        If objFolder.DefaultItemType = olAppointmentItem Then
            Set objCB = objExplorer.CommandBars.FindControl(, 1106)
            If Not objCB Is Nothing Then
                objCB.Execute
                Set objTemp = Application.ActiveInspector.CurrentItem
                Set objAppointment = Application.CreateItemFromTemplate(PATH_VORLAGE, objFolder)
                With objAppointment
                    timeStart = objTemp.Start
                    timeStart = DateAdd("h", Split(STARTTIME, ":")(0), DateSerial(Year(timeStart), Month(timeStart), Day(timeStart)))  
                    timeStart = DateAdd("n", Split(STARTTIME, ":")(1), timeStart)  
                    .Start = timeStart
                    .Duration = DURATION
                    objTemp.Close (olDiscard)
                    .Display
                End With
            End If
        End If
    End If
    Set objTemp = Nothing
    Set objCD = Nothing
    Set objFolder = Nothing
    Set objAppointment = Nothing
    Set objExplorer = Nothing
End Sub
Hinweis: Damit das Makro funktioniert muss natürlich ein Kalender aktiv sein in dem ein Tag oder eine Zeit ausgewählt ist.

Grüße Uwe
Member: freakms
freakms Aug 16, 2013 at 09:15:02 (UTC)
Goto Top
Super! Hat klasse funktioniert! Danke schön...