Outlook-News & Downloads
Outlook-Helpline Newsletter-Tipp
Spotlight: Mit dem neuen PDFgrabber 2.5 öffnen Sie PDF-Dateien direkt in Excel und Word Der PDFgrabber 2.5 wandelt PDF-Dateien in Word- oder Excel-Dateien um, so dass Sie sie bearbeiten oder in Ihren eigenen Texten und Kalkulationsmodellen verwenden können. Mit der neuen Version 2.5 des bewährten PDFgrabber wurde die Ausgabequalität speziell für Excel noch einmal optimiert und ein Menüpunkt zum Öffnen von PDF-Dateien direkt in Excel und Word integriert. Für die Umwandlung von PDF-Dokumenten mit dem PDFgrabber 2.5 brauchen Sie nur 3 Schritte:
PDFgrabber 2.5 - Standard für Privatanwender PDFgrabber 2.5 - Professional für professionelle Anwender Download-Tipp: Outlook-Adressen mit wenigen Mausklicks nach Excel übernehmen Beim Schreiben von Rechnungen, Lieferscheinen oder ähnlichen Dateien, bietet es sich an, die Empfängeradresse möglichst komfortabel aus Outlook einzufügen. Eine fertige Funktion bietet Excel dazu nicht, aber das neue SmartTools Outlook-To-Excel 2.0 behebt das Problem: Nach der automatischen Installation steht Ihnen in Excel ein neues Menü Einfügen-Outlook-Adresse zur Verfügung. Wenn Sie dann in Zukunft den neuen Assistenten nutzen möchten, rufen Sie die neue Funktion auf und es erscheint eine Liste mit allen verfügbaren Adressen aus Outlook angezeigt. Sie markieren dann nur noch den gewünschten Namen, klicken auf Einfügen und schon wird die entsprechende Adresse in die aktuelle Zelle eingefügt. Die brandneue Version 2.0 des beliebigen Assistenten für Excel bietet jetzt unter anderem:
SmartTools Outlook-To-Excel 2.0 News: Desktopsuche von Microsoft für Entwickler Vor einigen Wochen haben wir über die deutsche Version des Windows Desktopsuche von Microsoft berichtet. Mit diesem kostenlosen Tool sind Sie in der Lage, Word-Dokumente, E-Mails und andere Office-Daten auf Ihrem Rechner blitzschnell zu durchsuchen. Genau diese Funktionen stehen ab sofort auch Entwicklern für ihre eigenen Anwendungen zur Verfügung. Nutzen Sie die Windows Desktop Search API's, um individuelle Suchanfragen an das Programm zu schicken, das Ergebnis entgegenzunehmen und innerhalb Ihrer eigenen Anwendung anzuzeigen. Wenn Sie dann auch noch die Möglichkeit nutzen, einen individuellen Filter für ein spezielles von Ihnen genutztes Dateiformat zu erstellen, können Sie die Möglichkeiten der Windows Desktopsuche mit wenig Aufwand für Ihre eigenen Zwecke nutzen. Weitere Informationen finden Sie unter: Desktopsuche von Microsoft für Entwickler
E-Mail-Inhalte ganz einfach an Excel und Word übergeben, Teil 1 Versionen: Outlook, Word und Excel 2003, 2002/XP und 2000 Häufig möchten Sie Passagen aus E-Mails wie Adressen, Produktinfos oder Preise in eine Excel-Tabelle oder ein Word-Dokument übernehmen. Die Zwischenablage ist dabei ein oft genutzter Weg, der allerdings recht umständlich ist. Unser zweiteiliger Tipp der Woche stellt eine "Ein-Mausklick"-Lösung vor. Im ersten Teil vermitteln wir die notwendigen Grundlagen, der zweite Teil zeigt dann die komplette Realisierung eines entsprechenden Add-Ins für Outlook. Beginnen wir mit einer kleinen Betrachtung der speziellen Problematik einer solchen Lösung. Zuerst einmal müssen Sie auf die aktuell angezeigte Nachricht zugreifen können. Outlook stellt zu diesem Zweck ein Objekt "Inspector" zur Verfügung, bei dem es sich einfach ausgedrückt um ein Fenster handelt, das ein Element aus einem Ordner anzeigt. Der jeweils aktuelle Inspector lässt sich über die Eigenschaft "Application.ActiveInspector" zum Beispiel wie folgt ermitteln: Dim objInsp As Inspector Set objInsp = ActiveInspector Die Objektvariable "objInsp" enthält anschließend eine Referenz auf den aktuellen Inspector, über dessen Eigenschaften und Methoden Sie nun auf das jeweils angezeigte Element, also beispielsweise eine Nachricht, einen Termin, eine Aufgabe, einen Kontakt oder eine Notiz zugreifen kann. Dazu stellt das "Inspector"-Objekt die Eigenschaft "CurrentItem" zur Verfügung, die eine Referenz auf ein Element des Typs des jeweiligen Ordners liefert. Beim Posteingang wäre dies ein Element vom Typ "olMailItem". Um darauf zugreifen zu können, wäre zum Beispiel eine Initialisierung wie die folgende notwendig: Dim objInsp As Inspector Dim objMail As MailItem Set objInsp = ActiveInspector Set objMail = objInsp.CurrentItem Die Objektvariable "objMail" enthält nun eine Referenz auf die aktuelle Nachricht und erlaubt das Auslesen verschiedener Eigenschaften wie zum Beispiel "Subject" für die Betreffzeile oder "Body" für den Text der Nachricht. Die folgenden Anweisungen geben beispielsweise in einer Meldungsbox Betreffzeile und Nachrichtentext der aktuellen Nachricht aus: Dim objInsp As Inspector Dim objMail As MailItem Dim strSubj As String, strText As String Set objInsp = ActiveInspector Set objMail = objInsp.CurrentItem strSubj = objMail.Subject strText = objMail.Body MsgBox strSubj & vbCrLf & vbCrLf & _ strText Um markierten Text oder den kompletten Text einer Nachricht zu übernehmen, ist ein Zugriff auf die Eigenschaft "Body" notwendig. Hier zeigt sich jedoch das nächste Problem: Wenn Sie eine Nachricht anzeigen lassen, kann die Nachricht unterschiedliche Formate haben. Je nach Format der Nachricht zeigt Outlook verschiedene Bearbeitungs-Fenster an: Für das Format "HTML" werden Komponenten des Internet Explorers für die Anzeige herangezogen, für die Formate "RTF" und "Nur-Text" verwendet Outlook einen einfachen, internen Nachrichten-Editor. Etwas anders sieht es aus, wenn Word als E-Mail-Editor eingestellt ist: Für HTML-E-Mails werden nach wie vor Komponenten des Internet Explorers benutzt, für E-Mails im Format "RTF" jedoch der WordMail-Editor und für "Nur-Text"-E-Mails wird teilweise WordMail und teilweise der interne, einfache Editor von Outlook verwendet. Warum Outlook für "Nur Text" mal WordMail und mal den internen Editor für die Anzeige verwendet, konnte anhand der Dokumentation nicht geklärt werden. Es spielt für unsere Lösung zunächst auch keine besondere Rolle, wie wir weiter unten sehen werden. Abhängig vom Format kommen also verschiedene Editoren beziehungsweise Anzeige-Modi zum Einsatz. Diese lassen sich mit Hilfe von zwei Eigenschaften des "Inspector"-Objektes identifizieren: "EditorType" gibt zunächst über das Format Auskunft. Mögliche Werte sind hier "olEditorHTML", "olEditorRTF", "olEditorText" und "olEditorWord". Über eine "If...Then"-Abfrage wie die folgende kann man also zunächst das Format der aktuellen Nachricht überprüfen und abhängig davon reagieren: If objInsp.EditorType = olEditorWord Then ... ElseIf objInsp.EditorType = olEditorHTML Then ... ElseIf objInsp.EditorType = olEditorRTF Then ... ElseIf objInsp.EditorType = olEditorText Then ..... End If Der Wert "olEditorWord" sagt jedoch noch nicht aus, ob die Nachricht auch tatsächlich in Word angezeigt wird. Dazu muss eine weitere Eigenschaft "IsWordMail" des "Inspector"-Objektes abgefragt werden. Die oben gezeigte Konstruktion sieht dann so aus: If objInsp.IsWordMail And _ objInsp.EditorType = olEditorWord Then ..... ElseIf objInsp.EditorType = olEditorHTML Then ..... ElseIf objInsp.EditorType = olEditorRTF Then ..... ElseIf objInsp.EditorType = olEditorText Then ..... End If Ist das Format der Nachricht und der Typ des gerade verwendeten Editors geklärt, kann es daran gehen, die aktuelle Markierung auszulesen. Hier lauern die nächsten Probleme: Wenn eine Nachricht im internen Editor von Outlook angezeigt wird, kann nur der komplette Nachrichtentext ausgelesen werden, da das Objektmodell einen Zugriff auf markierte Passagen in diesem Modus nicht unterstützt. Wird die Nachricht hingegen im HTML-Modus oder in Word angezeigt, sind verschiedene Methoden des Zugriffs auf Markierungen zu verwenden, da zwei verschiedene Objektmodelle - das vom Internet Explorer und das von Word - zum Einsatz kommen. Glücklicherweise stellt Outlook hier zwei Eigenschaften im "Inspector"-Objekt zur Verfügung, die eine Referenz entweder auf das HTML- oder auf das Word-Dokument enthalten: "HTMLEditor" liefert eine Referenz auf ein "MSHTML.HTMLDocument" und "WordEditor" eine Referenz auf ein "Word.Document". Mit dem Einsatz entsprechender Objektvariablen dieser Datentypen können Sie dann mehr oder weniger einfach auf die jeweilige Markierung in der HTML- oder WordMail-Nachricht zugreifen. Damit auf HTML- und Word-Dokumente zugegriffen werden kann, sind zunächst Verweise auf beide Objektmodelle zu setzen:
Sub Test() Dim appWord As Word.Application Dim objWORDDoc As Word.Document Dim objHTMLDoc As MSHTML.HTMLDocument Dim objRange As IHTMLTxtRange Dim appExcel As Excel.Application Dim objInsp As Inspector Dim objMail As MailItem Dim strText As String, strX As String On Error Resume Next Set objMail = Application.ActiveInspector.CurrentItem If Err <> 0 Then Beep MsgBox "Das aktuelle Element ist keine Nachricht.", _ vbOKOnly + vbExclamation, "!!! Problem !!!" Exit Sub End If Hier ermitteln wir zunächst über "ActiveInspector.CurrentItem" eine Referenz auf das aktuelle Element, also auf die jeweils angezeigte Nachricht. Kommt es dabei zu einem Fehler, ist das angezeigte Element keine Nachricht. Wir zeigen eine entsprechende Meldung an und verlassen die Routine dann. Set objInsp = ActiveInspector If objInsp.IsWordMail And _ objInsp.EditorType = olEditorWord Then Set objWORDDoc = objInsp.WordEditor Set appWord = objWORDDoc.Parent strText = appWord.Selection.Text strX = "Word-Mail" In diesem Bereich holen wir uns zunächst über die "Inspector"-Eigenschaft "WordEditor" eine Referenz auf das Dokument in die Objektvariable "objWORDDoc". Deren Eigenschaft "Parent" erlaubt einen Zugriff auf die verwendete Word-Instanz, die wir in "appWord" ablegen. Darüber lässt sich dann per "Selection.Text" der markierte Text abfragen und in einer Variablen "strText" ablegen. "strX" weisen wir einen "Identifizierer" für die spätere Anzeige einer kleinen Meldung zu - siehe unten. ElseIf objInsp.EditorType = olEditorHTML Then Set objHTMLDoc = objInsp.HTMLEditor Set objRange = objHTMLDoc.Selection.createRange strText = objRange.Text strX = "HTML" Dieser Bereich ist für HTML-Mails zuständig: Zunächst setzen wir hier in die Objektvariable "objHTMLDoc" eine Referenz auf das HTML-Dokument, die uns die "Inspector"-Eigenschaft "HTMLEditor" liefert. Ein direkter Zugriff auf eine Markierung ist hier noch nicht möglich, dazu muss erst über die Methode "createRange" ein "Range"-Objekt initialisiert werden, dessen Eigenschaft "Text" uns dann schließlich den markierten Text liefert. ElseIf objInsp.EditorType = olEditorRTF Then strText = objMail.Body strX = "RTF" ElseIf objInsp.EditorType = olEditorText Then strText = objMail.Body strX = "TXT" End If Diese beiden Bereiche sind zuständig für "RTF"- und "Nur Text"-Mails, wenn Word nicht als E-Mail-Editor und/oder der interne Outlook-Editor verwendet wird. Wie bereits erläutert, ist hier ein Zugriff mangels Unterstützung durch das Objektmodell nicht möglich, so dass wir nur den kompletten Text der Nachricht über die Eigenschaft "Body" ermitteln können. MsgBox strX & ": " & strText End Sub Abschließend zeigen wir eine kleine Meldung an, die über "strX" das identifizierte Format - "HTML", "Word-Mail", "RTF", "TXT" - sowie den ausgelesenen Text anzeigt. Wie Sie sehen, ist der Zugriff auf die aktuell angezeigte Nachricht mit einigen Problemen verbunden, die sich aber im Großen und Ganzen recht einfach durch die Abfrage entsprechender Eigenschaften lösen lassen. Aufbauend auf diesen Grundlagen zeigt der zweite Teil des Tipps der Woche, wie Sie die markierten, ausgelesenen Texte über ein dafür angelegtes Symbol in einer Symbolleiste in eine Excel-Tabelle oder ein Word-Dokument einfügen.
Haben Sie Fragen zu Outlook 2003, 2002/XP, 2000 oder 97/98? Dann wenden Sie sich mit einer genauen Problembeschreibung (bitte senden Sie keine Dateien!) an: outlook-helpline@smarttools.de Unser Redaktionsteam wählt in jeder Ausgabe Fragen aus und beantwortet Sie an dieser Stelle im Newsletter. Fehler bei den Frei-/Gebucht-Informationen Versionen: Outlook 2003, 2002/XP, 2000 und 98 FRAGE: In unserer Arbeitsgruppe mit Exchange Server erhalten wir manchmal eine Fehlermeldung, dass die Frei-/Gebucht-Informationen nicht aktualisiert werden können. Bislang waren wir nicht in der Lage, diese Fehlermeldung abzustellen. Wissen Sie Rat? M. Priedigkeit ANTWORT: Haben Sie es schon einmal mit dem Programmparameter "/cleanfreebusy" probiert? Er sorgt dafür, dass alle Frei-/Gebucht-Informationen zurückgesetzt und neu initialisiert werden. Um Outlook mit diesem Startparameter auszuführen, gehen Sie wie folgt vor:
oder in Outlook 2002 und 2003: C:\Programme\Microsoft Office\ Office<Version>\OUTLOOK.EXE wobei <Version> für die Versionsnummer steht: "10" bei Outlook 2002 oder "11" bei Outlook 2003.
Office\OUTLOOK.EXE" /cleanfreebusy
Sollte der Einsatz des Startparameters nicht zum gewünschten Ergebnis führen, müssen Sie die Konfiguration Ihres Exchange Servers - insbesondere die Eigenschaften des öffentlichen Frei-/Gebucht-Ordners - überprüfen. Weiterführende Hinweise sprengen aber den Rahmen dieses Outlook-Newsletters.
E-Mails möglichst einfach erneut versenden Versionen: Outlook 2003, 2002/XP, 2000 und 98 FRAGE: Es kommt immer mal wieder vor, dass mir ein Mitarbeiter, Kollege, Bekannter etc. mitteilt, dass er eine Mail nicht erhalten hat. Ich möchten sie daher noch einmal verschicken und verwende dazu dann entweder die Zwischenablage oder die Weiterleiten-Funktion. Das kommt mir aber etwas umständlich vor, denn den Empfänger muss ich jeweils erneut eintragen. Kennen Sie eine einfachere Technik? R. Winkelmann ANTWORT: Tatsächlich verfügt Outlook über eine Funktion, die Ihnen hier weiterhelfen kann:
Office 2003 und XP-Tipps kostenlos per E-Mail Der SmartTools Office XP Insider ist ein kostenloser E-Mail-Newsletter, der sich ausschließlich mit Office 2003 und XP beschäftigt:
Klicken Sie hier für Ihr kostenloses Abo!
Um SmartTools Outlook Weekly abzubestellen, senden Sie einfach das Kommando "unsubscribe" an die Adresse outlook-weekly-html-request@smarttools.de Bitte beachten Sie, daß das Kommando im Nachrichtentext stehen muß (nicht im Betreff) und Sie keine Mail im HTML-Format senden dürfen. Weitere Informationen zur Verwaltung der Liste erhalten Sie mit dem Kommando "help" an dieselbe Adresse.
|