Ich würde an deiner Stelle dann auch auf ShellExecute verzichten, denn das (Neues Dokument basierend auf Template) geht nur so, wie ich es eben gezeigt habe und dazu müsstest du immer die Office-Version wissen, wie du das ja auch angemerkt hast.
Also ist der Weg über
Ole wohl der bessere, wenn wir mal davon ausgehen, dass du nur MS-Word benutzt, kein OpenOffice o.ä.
Dann kannst du es so machen, wie Delphi.Narium, wobei ich immer nie weiß, wie diese Early-Binding Varianten funktionieren, wenn ich mal eine neue oder ältere Office-Version ansprechen will, als die, womit ich das kompiliert habe. Da kann vllt. jemand anders mehr zu sagen.
Daher nehm ich da meist Late-Binding (so wie in deinem Beispiel), auch wenn das ggf. etwas lansamer ist.