logo domkeconsulting

Beratung und Entwicklung - Mehr Produktivität für Microsoft Office

Add-ins für MS Office


Eine Auswahl von Add-ins, die ich in den letzten Jahren für meine Kunden erstellte (Word, Powerpoint, Excel und Outlook). Nehmen Sie sich die Zeit, zu sehen, was man so machen kann ...

 

Access-Datenbank für Medizinischen Gutachter 

Für den Einsatz bei einem medizinischen Gutachter habe ich 2014 eine Access-Datenbank zur Auftragsbearbeitung und Abrechnung entwickel (seitdem in Wartung). Es musste keine teuere Software erworben werden. Die Lösung entspricht genau den Anforderungen des Gutachters und ist auf seinen Workflow abgestimmt.

  • Gutachten mit neuen Daten anlegen
  • Bestätigung an Auftraggeber senden
  • Einbestellung an Probanden senden
  • Weiterleitung an andere Gutachter (falls nötig)
  • Gutachten-Dokument und Anschreiben erstellen
  • Rechnungsdokument erstellen und versenden

Zur Erstellung der Dokumente wird Word automatisiert.

Die Gutachten-Vorlagen sind mit Bausteintexten und Automatischer Nummerierung versehen. Dynamische Dokumentvorlagen für drei Standorte sorgen für einen einheitlichen Auftritt trotz unterschiedlicher Sekretariate.

Für die Fakturierung wird Excel automatisiert - der Gutachter kann fallabhängige, individuelle Abrechnungen mit oder ohne GOÄ in ein Excel-Worksheet eintragen; dessen Daten werden dann in die Word-Rechnungsvorlage eingelesen.

Die Programmierung erfolgte in VBA (Access). Der Aufwand war dadurch sehr überschaubar, und mit Rapid Development konnte ich in kurzer Zeit die Anwendung produktiv bringen.

Ergebnis:

  • Professioneller Auftritt durch Dokumente mit gutem Design
  • Schnelle Dokumenterstellung und schnelle Fakturierung durch Automatisierungen ("hohe Schlagzahl")
  • Ausreichende Flexibilität bei der Fakturierung, kein programmatischer Overhead

Powerpoint 2003: Unternehmenseigene Vorlagenauswahl

Anforderung: Bei der Migration zu Office 2003 wird festgestellt, daß durch den Aufgabenbereich "Neues Dokument" die firmeneigenen Vorlagen nicht sofort angezeigt werden, sondern erst nach mehreren Klicks im Aufgabenbereich.

Die Benutzer sollen jedoch nicht den Microsoft-Vorlagenkatalog sehen, sondern sofort zu den produktiven Vorlagen geführt werden.

Lösung: Es ist nicht möglich, unter Powerpoint erstellte Add-ins beim Programmstart zu laden. Deshalb wird unter Verwendung von Visual Basic 6.0 ein COM AddIn programmiert, das den Powerpoint-Befehl "Datei, Neu" abfängt und statt des Aufgabenbereichs einen Dialog mit den Firmenvorlagen und Layoutvorschauen anzeigt.

Der Dialog wird zur Laufzeit durch eine XML-Datei konfiguriert, über die schnell neue Vorlagen und Registerkarten hinzugefügt werden können.

Word: Add-in für mandantenbezogene Drucksteuerung

Anforderung: In einem Call-Center werden nach erfolgreichem Telefonat bausteinbasierte Dokumente erstellt. Sie sollen auf dem Briefbogen des aktuell bearbeiteten Mandanten ausgegeben werden. Drucker mit Mehrfachschächten für die mandanteneigenen Briefbögen sind vorhanden. Jedoch sind die Standardbefehle in Word zum Wechseln des Druckers und zur Schachtauswahl zu umständlich für die geforderte schnelle Dokumentproduktion.

Lösung: Im Administrator-Modus eines Add-ins werden die Zuordnungen "Drucker/Schacht" und "Mandant" definiert. Beim Starten von Word erstellt das Programm aus den Informationen eine zusätzliche Symbolleiste, auf der die Mandantennamen als Menüeinträge aufgelistet sind. Benutzereingriffe sind nicht notwendig. Die Benutzer drucken mit zwei Mausklicks das Dokuments auf den korrekten Drucker und den richtigen Briefbogen.

Word Add-in für mandantenbezogene Druckersteuerung

Outlook: E-Mail-Archivierung und Druckausgabe

Anforderung: Eine Anwaltskanzlei benötigt E-Mails in gedruckter Form für die Archivierung in der Mandanten-Papierakte. Dabei sollen die relevante Information, Sender, Empfänger und Datum sowie die Metadaten des Dokumentmanagementsystems deutlich hervorgehoben werden. Das Outlook-Standardlayout ist dafür ungeeignet. Außerdem bietet Outlook keine Möglichkeit, das Standardlayout einheitlich zu konfigurieren. Zugleich soll die E-Mail im DMS mit den Dateianhängen archiviert werden.

Schwierigkeiten: eine vollautomatische Archivierungslösung ist nicht möglich, weil der ursprüngliche E-Mail-Empfänger in der Kanzlei nicht mit der Person identisch ist, die den Archivierungsvorgang vornimmt. Ebenfalls kann der relevante Inhalt der E-Mail nicht durch automatische Mechanismen gefunden werden (z.B. steht er nach mehreren internen Weiterleitungen nicht mehr an erster Stelle).

Lösung: Die gewünschten Erweiterungen werden in Outlook über ein COM Add-in zur Verfügung gestellt. Das Add-in überträgt den Inhalt der E-Mail und die Metadaten in eine entsprechend vorbereitete Word-Vorlage, so daß der gewünschte Druckoutput möglich wird. Dabei erhält der Benutzer die Möglichkeit, den relevanten Inhalt sowie die ursprünglichen Sender und Empfänger festzulegen. Zugleich werden E-Mail, Output-Dokument sowie Dateianhänge verknüpft im DMS (Hummingbird DM) abgelegt.

Word: Add-in für Schachtkonfiguration und Kopiedruck

Grundsätzliches Problem: Microsoft Word speichert für jeden Drucker individuelle Parameter im Dokument. Deshalb ist die Anpassung der Papierschächte in einem Word-Dokument für verschiedene Drucker immer problematisch. Zum Beispiel ist die Voreinstellung der Papierschächte in der Dokumentvorlage ist nicht möglich, wenn unterschiedliche Druckermodelle im Unternehmen eingesetzt werden (z.B. Briefbogen für Seite 1, Standardschacht für Folgeseiten). Benutzer können viel Zeit verlieren, wenn sie bei jedem Druck die Schachteinstellungen korrigieren müssen.

Anforderung: Die Benutzer sollen über einen einfachen Dialog das Dokument wahlweise auf Briefbogen und/oder Blankopapier ausgeben können. Eine Kopiedruck-Funktionalität soll die wiederholte Ausgabe des Dokuments mit Zusatzeinträgen erlauben ("Wiedervorlage", "Zweitschrift", "Kreditakte").

Lösung: über ein zentrales AddIn wird das "Firmen"-Druckmenü bereitgestellt. Der Benutzer startet den Druckvorgang über das besonders gekennzeichnete Symbol. Das aufgerufene VBA-Programm prüft den angeschlossenen Drucker, liest aus einer INI-Datei die verfügbaren Schächte und bietet über einen Dialog alle gewünschten Optionen an. Die Ausgabe auf verschiedenen Druckern mit unterschiedlichen Schächten und Treibern ist kein Problem.

Aufruf in Word 2010 Backstage View

Dialog "Druckmenü"

Firmenbezogene Druckeinstellungen

Dialog "Kopiedruck"

Abhängigkeiten: Diese Lösung basiert darauf, daß das VBA-Makroprogramm den aktiven Drucker eindeutig identifizieren kann. Nur dann ist das Nachschlagen der Schachtzuweisungen in einer INI-Datei möglich.

Alternativer Lösungsansatz: In einem anderen Projekt können die Drucker nicht identifiziert werden, weil jede Niederlassung des Unternehmens eigene Konventionen bei der Benennung der Drucker hat. Die administratorenfreundliche Lösung sieht so aus: der Benutzer wird einmalig gefragt, welche Schächte des aktiven Druckers für Briefbogen und Blankopapier zu verwenden sind. Diese Informationen werden für jeden benutzten Drucker im Benutzerprofil abgelegt und beim nächsten Druckvorgang wiederverwendet.

Word: Add-in für Automatische Nummerierungen

Die Word-Funktionen zur automatischen Nummerierung sind benutzerbezogen. Ein einheitliches Firmenlayout für Dokumente zu erstellen ist mühsam und fehlerträchtig.

Speziell für Rechtsanwaltskanzleien habe ich ein Add-in entwickelt, mit dem firmeneinheitliche Stile leicht erstellt und genutzt werden können.

Die Ebenen und Formate der Nummerierungs werden nach den Vorgaben des Kunden definiert und können mit geringem Aufwand erweitert oder umdefiniert werdn.

Dadurch ist die firmenweite und einheitliche Erstellung von Nummerierungen unproblematisch möglich. - Die Add-ins sind für die Kanzlei angepasst und zum Teil seit Jahren im erfolgreichen Einsatz.

 

Auswahldialog Muster 1 

Num-01.jpeg

 

Auswahldialog Muster 2

 

NUM-02.jpeg

 

Auswahl einer Nummerierung über das Word-Menüband:

NUM-03.jpeg

Ein Inhaltsverzeichnis-Manager rundet das Add-in ab: es können mehrere Inhaltsverzeichnisse im Dokument angelegt und aktualisiert werden.

Num-04.jpeg


Zurück zum Menü

Word 2010: Firmeneigener DateiNeu-Dialog

Problem: Der eingebaute DateiNeu-Dialog in der Office 2010 "Backstage View" wird aus folgenden Gründen häufig kritisiert: a) es ist schwierig, firmeneigene Dokumentvorlagen schnell und strukturiert aufzulisten; b) er enthält Elemente, die nicht verborgen werden können; außerdem kann dieser Teil des "Backstage" nicht angepasst werden; c) er kann keine Erläuterungen oder Hinweise zur markierten Dokumentvorlage anzeigen.

Anforderung: Erstellung einer DateiNeu-Funktion, die nur die Firmen-Dokumentvorlagen in einer Baumansicht strukturiert anzeigt. Optionale Erläuterungen sollen möglich sein. Eine Suchfunktion und eine "Favoriten"-Funktion sind ebenfalls gewünscht. Der Einsatz erfolgt auf Windows 7-Rechnern mit einem US-Office 2010.

Lösung: Ein Word 2010 Add-in wurde entwickelt unter Verwendung der Visual Studio Tools for Office Runtime (VSTO und VB.NET).

Benutzersicht

Die DateiNeu-Schaltfläche in der "Backstage View" (natürlich sind auch Strg+N und das FileNew-Symbol abgefangen und werden auf den neuen Dialog umgeleitet):

File New button in backstage view

Der DateiNeu-Dialog mit der Baumansicht (TreeView und ListView-Steuerelemente). Bei Klick auf eine Dokumentvorlage werden die Erläuterungen angezeigt:

File New main dialog

Die Favoriten des Benutzers:

Favorites

Die Suchfunktion listet alle Dokumentvorlage auf, die den Suchbegriff im Namen oder in der Erläuterung enthalten:

File New Search

Technische  Anmerkungen

  • Die eingebaute DateiNeu-Schaltfläche der Backstage View kann nicht entfernt werden. Die Eigenschaft "visible = false" ist gesetzt.
  • Der DateiNeu-Dialog zeigt eine Ordnerhierarchie. Scheinbar liegen die Dateien darin. Eine markierte Vorlage kann per Rechtsklick oder über Schaltfläche als Favorit gespeichert werden. Automatisch werden zuletzt benutzte Vorlagen unter dem Knoten "Recent" gespeichert.
  • Die Speicherung der Favoriten und Zuletzt benutzten Vorlagen erfolgt in XML-Dateien im Anwendungsordner "Roaming" des Benutzers.

Auf der Dateiebene liegen alle dotx- und dotm-Dateien in der Wurzel des Vorlagenverzeichnisses, und nicht in den Unterordnern. Die Unterordner enthalten nur XML-Dateien mit den Metadaten. Beim Start des Add-ins wird diese Struktur in einem Hilfsthread (Backgroundworker) eingelesen.

Beispiel für Metadaten:

<?xml version="1.0" encoding="ISO-8859-1"?>
<document-element>
<doc-name>NY Memo</doc-name>
<doc-desc>NY Style Memo template with dialog to adjust the document
for Language, Office and Personal Data</doc-desc>
<filename>WC_Memo.dotm</filename>
</document-element>

Kundenseitig wurde diese Anordnung bevorzugt mit Rücksicht auf ein bestehendes System zur Verteilung geänderter Inhalte (neue oder aktualisierte Dokumentvorlagen können einfach in das Wurzelverzeichnis kopiert werden).

Grundsätzlich wäre es möglich gewesen, auf die physische Ordnerstruktur zu verzichten und sowohl Baumstruktur als auch die Detaildaten zu den Vorlagen in einer einzigen XML-Datei zu halten (so habe ich es auch in einem verwandten Projekt realisiert).

Excel: Controlling Add-in

Aufgabenstellung

Das Unternehmen verwendet ein CRM-System, in dem alle Angebote und Aufträge erfasst werden. Das System bietet zwar Berichte an, aber die vom Controlling gewünschten Umsatzanalysen und -prognosen können nicht geliefert werden, Die Ausgabe der aggregrierten Daten in einer Excel-Arbeitsmappe wurde gewünscht.

Das CRM-System bot ursprünglich keine Möglichkeit, Neugeschäft von normalen "Folgeaufträgen" zu unterscheiden. Für die Vertriebssteuerung war aber gerade diese Unterscheidung wichtig. Hilfsparameter wurden geschaffen, um neue Aufträge von einfachen Folgeaufträgen zu unterscheiden. Die Auswertung muss dazu die Daten noch zusätzlich aufbereiten.

Lösung

Die von mir erstellte Lösung ist wieder ein typisches Beispiel, wie durch Office-Automatisierung für einen Übergangszeitraum eine befriedigende Problemlösung geschaffen werden kann. Hier dauert der Übergangszeitraum allerdings noch an - das Add-in machte sich wirklich bezahlt, auch wenn natürlich im Laufe der Jahre immer wieder Korrekturen und Aktualisierungen nötig waren und Erweiterungen beauftragt wurden.

Datenbestand

Das Add-in wurde in Excel VBA erstellt. Ursprünglich bestand es aus zwei Modulen: a) Datengenerierung und b) Auswertung. Dies war notwendig, weil die Datenbestände lokal in Paradox-Datenbanken vorgehalten wurden. Das Generierungsmodul erzeugte per DAO-Schnittstelle eine Microsoft Access-MDB-Datei mit dem fixierten Monatsbestand. Der Bestand konnte dann mit dem Auswertungsmodul beliebig oft analysiert werden.

Zur Zeit werden alle Datenbestände zentral auf einem SQL-Server verwaltet, und der Monatsbestand durch ein DTS-Paket erzeugt. Der Monatsbestand enthält immer nur diejenigen Daten, für die der Controller / Benutzer berechtigt ist.

Das Excel Add-in läuft unter Citrix Terminalserver.

Auswertungsmodul

Das Auswertungsmodul erlaubt dem Controller, auf Basis des ihm verfügbaren Datenbestands die Auswertung zu fokussieren auf Sparten, Niederlassungen und Vertriebsmitarbeiter sowie andere Parameter festzulegen:

Umsatzcontrolling - Dialog 1

 

Als Ergebnis wird eine Excel-Arbeitsmappe mit den Auswertungen erzeugt. Die Ausgabe ist "ausdrucksfähig", so dass die Auswertungen in Meetings präsentiert werden können.

Die Daten werden nur zum Teil durch Excel-Formeln berechnet. Der grösste Teil der Daten wird während des Ablaufs durch SQL-Statements mit Aggregatfunktionen gebildet (also durch SQL-Statements im Programmcode) und dann in das Arbeitsblatt übertragen.

Vorhandene Daten (z.B. Listen von Niederlassungen) werden in Arrays verwaltet, und per Schleife an variable SQL-Statements übergeben.

Hier zwei Muster für Ergebnisblätter:

Excel: Add-in zum Erweitern von eDocs DM Verknüpfungen

Aufgabenstellung

Der Kunde verwendet eDocs DM als Dokumenten-Management-System. DM hat eine Funktion "DM Verknüpfung", mit der Verknüpfungen zwischen Excel-Arbeitsmappen so umgeleitet werden können, dass sie sich auf die im DMS gespeicherten Dateien beziehen. Ein Add-in von Open Text stellt die Aktualisierung der Links sicher.

Das Add-in von Open Text funktioniert korrekt und wie geplant. Leider enthalten die Links aber nur "absolute" Zelladressen:

=PwDMoniker.PwDMoniker.1|'PCDOCS://SKMA/171893/R'!'Tabelle1!Z6S2'

Dabei steht "PCODCS://SKMA" für die DMS Bibliothek, "171893" für die Dokumentnummer, "R" für die aktuelle Version, "Tabelle1" für die Arbeitsmappe in der Datei, und "Z6S2" steht natürlich für Zeile 6 Spalte 2.

Somit ist es nicht möglich, wie üblich die Befehle "Unten ausfüllen" und "Rechts ausfüllen" zu verwenden, mit denen der Benutzer normalerweise relative Formeln einfach in einen angrenzenden Zielbereich kopieren kann. Auch kann man nicht wie in Excel gewohnt die Referenzen mit der F4-Taste zwischen "relativ" und "absolut" umschalten.

Der Kunde wünscht ein "Tool", um das zu beheben.

Lösung

Ich erstellte ein Excel add-in mit Hilfe von des Add-in Express frameworks (siehehttp://www.add-in-express.com/add-in-net/index.php).

Das Add-in fügt zwei Befehle zum Arbeitsblatt-Kontextmenü hinzu. Die Befehle arbeiten nur, wenn mehrere Zellen markiert sind, und wenn die erste Zelle eine Formel mit DM-Verknüpfung enthält

In diesem Fall wird die Quellformel analysiert, die Zahl der auszufüllenden Zellen ermittelt, und neue Formeln mit den entsprechenden Zelladressen in den Zielbereich eingefügt.

Auswahl der Quelle und des Zielbereichs:

Ergebnis:

Die Kosten - und einige Worte über Aufwandschätzungen

Für die Prüfung und für die "Wie-könnte-das-gehen"-Codierung mit ein paar VBA-Makros, für den Prototypen in C#/Visual Studio 2010, für die Entwicklung einer "schlauen" Klasse für die Kalkulation der Zielreferenzen, die Finalisierung und die Fehlerbehebung nach den ersten Tests, für die Erstellung des MSI Setup zur Verteilung auf den Terminalservern und den Test des Setups auf einer "sauberen" Zielmaschine, und endlich für das Schreiben eines kurzen, mit Fotos garnierten Hinweises zur Benutzung des Tools, waren insgesamt 20 Stunden bzw. 2,5 Tage notwendig.

Dies zeigt deutlich,dass auch für eine "kleine Lösung" ein gewisser Mindestaufwand immer kalkuliert werden muss. Niemals sollte glauben, die Kosten des Endprodukts seien identisch mit der Zeit, die man für die Prüfung "ob etwas geht" benötigt - da nutzt man ein kleines VBA-Makro, um die Möglichkeiten zu testen. Das Endprodukt, das vom Kunden 200 Tage im Jahr eingesetzt wird, oder auch von Benutzern eingesetzt wird, die bei Fehlern nicht tolerant sind, muss in allen Umständenfunktionieren, muss eine korrekte Fehlerbehandlung haben, nach Möglichkeit auch eine Logfunktion zum Aufspüren von Fehlern. Auch ein Setup wird benötigt, und muss getestet werden; und zu guter Letzt stösst man immer wieder auf Probleme, mit denen man nicht rechnete.

Wenn aber der Kunde mit der Lösung zufrieden ist, und wenn die Lösung vielleicht fünf Jahre lang überall in einem Unternehmen von 25 Excel-Power-Usern eingesetzt wird, dann waren die 20 Stunden eine geringe Ausgabe für den erzielten Produktivitätsgewinn.