2
www.ChF-Online.de  

Aufgaben (mit Dokumenten) in Outlook eintragen

   Neuigkeiten
   API-Aufrufe in VBA
   VBA2HTML
   Word
   Word-VBA
 Verschiedenes
 Feld-Arbeiten
 Form-Sachen
 Menü-/Symbolleisten
 VBA und Lotus Notes
 VBA und Mail
 Inside VBAIDE
aktiv aktiv Von Word nach Outlook
aktiv  Aufgaben in OL eintragen
 Aufgaben in OL eintr. (AddIn)
 Fix-und-Fertiges/Projekte
   Word2007 (RibbonX)
   Word2010 (RibbonX)
   Outlook-VBA
   Links zu VB(A)
   DocToHelp
   Netport Express XL
   Astronomie
   Gästebuch
   Volltextsuche
   Sitemap
   Buch:Word-Programmierung
   Impressum & Kontakt
   Datenschutzerklärung
Getestet unter Word2000Getestet unter WordXPGetestet unter Word2003Getestet unter Outlook2000Getestet unter Outlook2003Getestet unter Win2000Getestet unter WinXP  
Beispiel anzeigen
Makro/Datei speichern
Print

Mittels VBA lassen sich nicht nur Aufgaben und Abläufe innerhalb eines Office-Programmes erledigen und steuern sondern auch zwischen den Office-Programmen übertragen. Dabei ist es unter Office 2000 allerdings noch so, dass nicht jeweils das vollständige Objektmodell zur Verfügung steht und sich somit Einschränkungen hinsichtlich des steuerbaren Programmumfangs ergeben.

In diesem Beispiel wird gezeigt, wie sich aus Word heraus eine Aufgabe in (ein lokal installiertes) Outlook eintragen lässt. Dabei kann optional das gerade geöffnete Dokument als Aufgaben-Anhang mitgespeichert werden.

Eingabemaske Aufgabendaten

In der aktuellen Version werden nicht alle Möglichkeiten und Einträge einer Outlook-Aufgabe genutzt, sondern es soll eher der Anbindungsweg und das Eintragen der wichtigsten Informationen gezeigt werden.

Folgende Informationen können über die Userform erfasst und anschließend nach Outlook übermittelt werden:

  • Start-Datum
  • Fälligkeitsdatum
  • Erinnerungsdatum (relative Angabe) und Uhrzeit
  • Bearbeitungspriorität
  • Aufgaben-Kategorie
  • Aufgabenbetreff
  • Aufgabenbeschreibung
  • Aktuelles Dokument

Wenn alle Informationen erfasst sind, muss zuerst eine Verbindung zu Outlook hergestellt werden. Dazu wird per Late binding das Outlook-Objekt angesprochen. Bei Late binding ist kein Verweis auf eine Microsoft Outlook x Object Library notwendig; allerdings müssen in diesem Fall alle Konstanten als Zahlenwerte angegeben werden.
Wenn Outlook bereits aktiv ist, wird diese Instanz verwendet, ansonsten wird eine neue geöffnet.

Anschließend wird ein neues Item vom Typ olTaskItem (Wert: 3) erzeugt. An dieses Objekt werden dann die in der Erfassungsmaske zusammengetragenen Informationen weitergegeben. Ist ein Erinnerungsdatum angegeben und liegt dies im angegebenen Datumsbereich, wird das Erinnerungsfeld aktiviert (.ReminderSet = True) und das Erinnerungsdatum eingetragen (.ReminderTime).
Zum Schluss wird das aktuelle Dokument, sofern angegeben, als Anhang an die Aufgabe angehängt und die Aufgabe gespeichert.

Sofern die Outlook-Instanz vom Makro erzeugt wurde, wird sie anschließend wieder geschlossen.

Wichtig
Damit das Beispiel funktioniert, wird ein zusätzliches Steuerelement verwendet:

  • Kalender Steuerelement 9.0 (MSCAL.OCX)

Sollte es da zu Problemen kommen, prüft ob Ihr das Steuerelement in der Liste findet.

Function Dok2OLTask(dStart As Date, dEnd As Date, strCat As String, _  
 strSub As String, strBody As String, dRemind As Date, Optional oDoc As Document) As String  
Dim olOrdner As Object  'MAPIFolder 
Dim myOlApp As Object 'Outlook.Application  
Dim olTaskItem As Object ' TaskItem 
Dim bcreate As Boolean  
Const c_TaskItem As Integer = 3
bcreate = False  
On Error Resume Next  
Set myOlApp = GetObject(, "Outlook.Application")  
On Error GoTo 0  
On Error GoTo Err_Handle  
' OL bereits gestartet?  
If myOlApp Is Nothing Then  
  bcreate = True  
  Set myOlApp = CreateObject("Outlook.Application")  
End If  
' Neue Aufgabe  
Set olTaskItem = myOlApp.CreateItem(c_TaskItem)  
' Aufgabe beschreiben  
With olTaskItem  
  .Categories = strCat  
  .StartDate = dStart  
  .DueDate = dEnd  
  ' Erinnerung gesetzt  
  If dRemind > 0 Then  
    .ReminderSet = True  
    .ReminderTime = dRemind  
  Else  
    .ReminderSet = False  
  End If  
  .Subject = strSub  
  .Body = strBody  
  .Importance = cbxPrio.ListIndex  
  ' Dokument anhängen  
  If Not oDoc Is Nothing Then  
    .Attachments.Add oDoc.FullName  
  End If  
  .Save  
End With  
' Aufräumen  
Set olOrdner = Nothing  
Err_Handle:  
Dok2OLTask = Err.Description  
If bcreate = True Then  
  myOlApp.Quit  
End If  
Set myOlApp = Nothing  
End Function 

Um die Userform z.B. per Symbolleistensymbol aufrufen zu können, muss in ein Modul ein Makro eingefügt werden, das die Userfrom aufruft. Dieses Makro kann dann per Anpassen-Befehl mit einem Symbol versehen in eine Symbolleiste eingefügt werden.

Sub CallDoc2OLfrm()  
frmDoc2OLTask.Show vbModeless  
End Sub  

 Besucher: 2 online  |  44 heute  |  1383 diesen Monat  |  683129 insgesamt | Seitenaufrufe: 59   Letzte Änderung: 24.06.2006 © 2001-18 Christian Freßdorf
  Ich würde lieber angegriffen werden als ignoriert. Das schlimmste, was einem Autor passieren kann, ist, daß die anderen zu seinen Arbeiten schweigen.
Samuel Johnson
 powered by phpCMS and PAX