• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[Outlook] Terminexport

mo

Administrator
Teammitglied
Hi,
bei Outlook gibts die Option Datei -> Webseite speichern, mit der ich alle Termine in einem bestimmten Zeitraum als Webseite exportieren kann.
Kann das mit nem Makro irgendwie automatisiert werden? Z.B. bei jedem Start von Outlook oder (besser) nach jedem Synchronisieren mit meinem Handy?
 
Hi mo!

Soweit ich das sehen konnte gibt es keinen direkten Weg die "save as webpage" - Funktion per Makro aufzurufen, zumindest habe ich nichts gefunden, jedoch kann man ganz easy eine xml-Datei erstellen oder aber auch eine HTML - Seite, hierfür das Ding einfach etwas umformatieren:

Code:
Sub CalendarToXML( )
  Dim xmlHeader  As String
  Dim olApp As Outlook.Application
  Dim objName As NameSpace
  Dim Filename As String
  Dim objAppointment As Outlook.AppointmentItem
  Dim i As Integer

  Filename = "c:\temp\calendar\calendar.xml"

  Set olApp = Outlook.Application
  Set objName = olApp.GetNamespace("MAPI")
  Set Folder = objName.GetDefaultFolder(olFolderCalendar)
  
  Open Filename For Output As #1

  Print #1, "<?xml version=""1.0"" encoding=""ISO-8859-1""?>"
  Print #1, "<folder name="""; Folder.Name; """>"

  On Error Resume Next
  For Each Item In Folder.Items

    Print #1, "  <Appointment>"

    ' frequently used fields
    Call PrintXMLElement("CreationTime", Item.CreationTime)
    Call PrintXMLElement("Start", Item.Start)
    Call PrintXMLElement("End", Item.End)
    Call PrintXMLElement("Duration", Item.Duration)
    Call PrintXMLElement("Subject", Item.Subject)
    Call PrintXMLElement("Location", Item.Location)
    Call PrintXMLElement("Categories", Item.Categories)

    ' other
    Call PrintXMLElement("Sensitivity", Item.Sensitivity)

    If Len(Item.Body) > 0 Then
      Print #1, "    <Notes><![CDATA[" & Item.Body & "]]></Notes>"
    End If

    Print #1, "  </Appointment>"
  Next Item

  Print #1, "</folder>"

  Close #1

End Sub

Das ganze rufst du dann über die Startup-Prozedur auf:

Code:
Private Sub Application_Startup( )
  CalendarToXML
End Sub

Das ganze kann auch bei diversen anderen Events aufgerufen werden ( beim Beenden, usw. )

Hoffe das hilft
 
hi comet,
du weisst aber schon, dass du mich damit überforderst, gelle :)
ich hab keinen schimmer von outlook.

was ich gemacht habe:
1. den vba editor gestartet
2. dann ein neues modul eingefügt und da deinen oberen code
3. ein zweites modul und deinen zweiten code
4. ausgeführt
5. fehlermeldung nicht verstanden, bzw. abstellen können

wie genau füg ich denn nun so ein makro ein?
danke dir schon mal.
 
Also, vorerst mal, welche Outlook-version haste denn?

Bei 2003 hab ich das folgendermaßen erfolgreich eingebaut:

* Outlook öffnen
* ALT - F11
* Im VBA-Editor dann "Diese Outlooksitzung" auswählen
* Dort dann einfach den Inhalt der ersten Box copy&paste rein
* Dann, über dem code, im linken dropdown "Application" auswählen
* In der rechten Box ist nun die Auswahlmöglichkeit "Startup" verfügbar -> auswählen
* Nun in dem neuem Sub CalendarToXML rein und fertig
* Speichern und Beenden
* Nun muß es aber noch den folder "c:\temp\calendar\" geben sonst kracht es

Nochmals, ein kleiner Fehler war drin, kopier dir bitte nochmal die erste Box raus !!

Das wars
 
Zurück
Oben