Microsoft Project zu HTML (mpp2html)

Dieses Skript hilft mir meine Projektpläne in WORD zu übertragen, so dass der Projektplan auch in der allgemeinen Dokumentation mit den relevanten Aussagen eingebunden werden kann. Wer eine "vollständige" Version braucht, kann mit Microsoft Project die Daten auch als XML-Datei Exportieren und mit einem Stylesheet geeignet transponieren.

Wer, wie ich, auch umfangreichere Exchange Projekte durchführt, der kommt nicht umhin, auch etwas Projektplanung durchzuführen. Ich bin nun kein Project-Freak, der bis in das letzte Feld die Ressourcen, Arbeitszeiten und Mitarbeiter pflegt. Ich nutzt Project eher rudimentär zur Pflege der verschiedenen Arbeitsschritte, der geschätzten Dauer, der Abhängigkeiten und der Beschreibung durch Notizen. Während des Projekts kann ich dann über den Grad der Fertigstellung jedem Teilnehmer einfach darstellen, wie weit wir sind und welche Schritte noch vor uns liegen.

MS Project

Das Problem bei Projekt ist aber, dass man die Pläne sehr wohl als "Bild" extrahieren kann, aber ich habe keinen Weg mehr gefunden, wie ich die aktuelle Projektdokumentation z.B.: in Word (oder andere Textverarbeitungsprogramme) übertragen oder als Webseite veröffentlichen kann. Sicher gibt es Sharepoint und auch den Microsoft Project Server, welcher die Zusammenarbeit im Team erleichtert. Aber in den meisten meiner Projekte bin ich der einzige, der mit MS Project überhaupt etwas arbeitet. Daher muss es einfach sein.

Überschriften und Notizen

Nun ist es so, dass man in Projekt die verschiedenen "Tasks" anlegt und daran auch Notizen pflegen kann. Da wäre mir schon viel damit gedient, wenn man die Tasks als Überschriften in Word und die Notizen als "Text" verwenden könnte. Aus dem Beispielprojekt von oben ergibt sich dann folgende Word-Darstellen (HTML-Datei öffnen) 

Natürlich können Sie auch direkt die HTML-Datei auf einen Webserver hochladen, in ein WiKi posten oder anders weiter geben.

Formatierung von Notizen

MS Project erlaubt die Formatierung von Notizen. Über die Eingabemaske kann man rudimentär die Schriftarbeiten verändern oder Aufzählungen vorgeben. Man kann sogar Bilder und andere Objekte einbetten.

Unterm Strich ist es aber nicht viel mehr als ein Feld, welches Wordpad nicht ganz unähnlich ist. Per Zwischenablage, kann man aber auch umfangreichere Daten aus anderen Quellen einbinden.

Allerdings bringt uns das nicht so viel, weil das VBA-Objektmodell von Project immer nur ein TEXT-Feld zurück gibt, indem maximal ein paar Zeilenumbrüche und "VerticalTabs" etwas von der Formatierung erahnen lassen. Ich habe keinen Weg gefunden, auch nur die Aufzählungen korrekt zu erkennen, geschweige denn andere Inhalte.

Trick für Aufzählungen
Da ich auf Aufzählungen nicht verzichten möchte, nutze ich diese weiterhin aber leite sie mit einem kleinen "Punkt" ein. Diesen kann ich dann im Skript erkennen (Punkt am Anfang eine Zeile) und eine HTML-Aufzählung draus machen. Das reicht mir für meine Aufgabenstellung aus.

Skript und Umsetzung

Für MPP2HTML habe ich Visual Basic für Applications gewählt, welches in Project einfach anzusprechen und zu entwickeln ist. Wer tausende von MPP-Dateien konvertieren kann, kann dieses Skript sicher einfach nach VBScript übertragen. In meinem Beispiel muss ich das entsprechende Projekt geöffnet haben und starte dann einfach die Funktion, die mir neben die MPP-Datei eine HTML-Datei gleichen Namens + "HTML" anlegt.

Zusätzlich legt das Skript die aktuelle HTML-Ausgabe noch in der Zwischenablage ab, so dass ich diese sehr einfach an die richtige Stelle in Word einfach einfügen kann.

mpp2html.bas.txt
Laden Sie sich die Datei herunter speichern Sie diese als mpp2html.bas.

Einbinden können Sie die BAS-Datei ganz einfach mit

  1. Microsoft Project starten
  2. ALT -F11 drücken (VBA Editor öffnet sich, sofern installiert)
  3. "Datei importieren"  BAS anwählen
  4. Neue Datei erscheint unter "module"
    da drin dann einfach auf die Funktion "MPP2HTML" gehen und F5 (RUN) drücken
  5. Die HTML-Datei landet im gleichen Ordner wie die MPP-Datei

Eventuell müssen Sie noch eine Referenz auf "Microsoft ActiveX Data Objects Library" addieren.

Aktuell wird bei der Ausgabe in die Zwischenablage noch die erste Überschrift unterschlagen. Das ist aber eh nur der Dokumenttitel und für meine Aufgabe nicht erforderlich. Vielleicht finden Sie ja den Fehler, wo ich mich verzählt habe.

Weitere Links