AW: Application.TemplatesPath irgendwie merkwürdig...
03.04.2017 20:29:14
Daniel
Hallo Chris
ich konnte nochmals ein wenig testen. Da hat sich offensichtlich seit der Version 2013 was getan.
Ausgangslage bis zur Version 2010
Bis zur Version 2010 von Office gab es in Word nur die "Dateispeicherorte..." in den Optionen:
Nach einer frischen Installation von Office findet sich in der Registry kein konkreter Pfad zu den Templates. Es gibt aber den folgenden Key:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\General\Templates
Darin wird lediglich der UNTER-Ordner des folgenden Roaming-Profil-Ordners definiert:
C:\Users\Daniel\AppData\Roaming\Microsoft
Unter Office 2003 hiess dieser Key noch "Vorlagen", weil der Unterordner auch "Vorlagen" hiess. Seit Office 2007 heisst der Ordner "Templates".
Erst, wenn man den Pfad in den Optionen von Word auf etwas anderes ändert (seit Word 2007 unter "Dateispiecherorte..."), erstellt Word einen neuen Registry-Key:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\General\UserTemplates
Und darin steckt der konkrete Ort der Vorlagen drin.
Bis zur Version 2010 hat auch Excel diesen Ordner für seine Vorlagen verwendet. Das hat prima funktioniert.
Lage seit Office 2013
Microsoft hat in Office 20103 in Word und Excel je eine neue Option "Standardspeicherort für persönliche Vorlagen" eingeführt:
Dieser Eintrag bleibt jedoch vorerst leer. Ebenfalls findet sich in der Registry auch kein Eintrag.
Sobald man aber das erste Mal unter "Speichern unter..." eine Vorlage auswählt, dann erstellt Word automatisch den folgenden (neuen) Ordner:
C:\Users\Daniel\Documents\Benutzerdefinierte Office-Vorlagen
Da nehme ich mal an, dass dieser Pfad hart codiert ist. In der Registry konnte ich VOR dem ersten Speichern einer Vorlage diesen Pfad nicht finden.
Sobald man die erste Vorlage gespeichert hat, ergänzt Word automatisch den Eintrag in den Optionen:
Dies erzeugt ebenfalls einen neuen Registry-Key:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\General\PersonalTemplates
Neu in dem Sinn, weil es diesen Key bis zur Version 2010 nicht gegeben hat.
Löscht man übrigens in Word oder Excel den Eintrag "Standardspeicherort für persönliche Vorlagen" wieder, wird auch der Registry-Key entfernt.
Die Normal.dotm wird lustigerweise (gelegentlich, ich konnte es nicht immer reproduzieren) auch in den neuen Ordner kopiert. Verwendet wird danach jedoch trotzdem die Normal.dotm aus dem ursprünglichen Ordner aus "Dateispeicherorte...".
Office 2016 zeigt ein identisches Verhalten, soweit ich das sehe.
Bezug zu VBA und Probleme
Warum schreibe ich das alles? Einfach, um erstens ein wenig Klarheit zu schaffen, aber auf folgende Stolpersteine hinzuweisen (wobei es gut sein kann, dass ich was übersehen habe).
1.) Word und Activedocument.AttachedTemplate.Path
Diese Eigenschaft zeigt grundsätzlich den ursprünglichen Pfad aus den "Dateispeicherorte" an, also der Pfad, der wohl seit 25 Jahren in Word besteht.
Auch bei Word 2013 und 2016 zeigt die Eigenschaft diesen Pfad an. Ich konnte keine Eigenschaft in einem Objekt (egal ob Application oder ActiveDocument) finden, welche den neuen Pfad aus "Standardspeicherort für persönliche Vorlagen" zeigt.
2.) Application.TemplatesPath
Application.TemplatesPath
zeigt ebenfalls den ursprünglichen Pfad aus den "Dateispeicherorte" an. Bis Office 2010 wurde dieser Pfad ja in der Tat noch verwendet, seit 2013 werden die Vorlagen (weder von Word noch von Excel) in diesem Ordner nicht mehr beachtet.
Fazit
Vermutlich hat Microsoft mit der Version 2013 gemerkt, dass man die Vorlagen der Applikationen vielleicht gerne getrennt speichern möchte (gilt auf für Powerpoint). Somit haben sie die Option "Standardspeicherort für persönliche Vorlagen" eingeführt.
Und vermutlich haben sie dabei zwei Sachen vergessen:
- die Normal.dotm auch zu zügeln (ev. war das auch bewusst, damit sie nicht versehentlich gelöscht wird)
- die neuen Pfadangaben als Eigenschaft im Objektmodell zu ergänzen
So, das wärs;). Falls jemand noch was dazu hat, bitte sagen. Und falls ich Blödsinn erzählt habe, bitte auch melden. Bin froh um Input.
Herzliche Grüsse
Daniel