Вы также можете использовать встроенное свойство документа для доступа к имени шаблона: ActiveDocument.BuiltInDocumentProperties(wdPropertyTemplate)
Я не помню, почему иногда были различия между этими двумя результатами; Вы должны попробовать это. имейте в виду, что доступ к встроенным свойствам иногда устанавливает документ в грязное состояние, поэтому полезно сохранять состояние ActiveDocument.Saved до и сбрасывать его после обращения к свойству.
[UPDATE]
Я снова посмотрел, как вы создаете документы. Если у вашего клиента 38.000 шаблонов, я думаю, что ваша проблема - «поддельные» шаблоны. Я только что сделал тест с Office 2003:
- Создайте новый документ «TestTemplate.doc» с тем же содержимым и сохраните его как файл doc. Закройте его.
- Перейдите в проводник Windows и переименуйте документ в «TestTemplate.dot». Это провоцирует Windows Explorer рассматривать его как шаблон, а не как документ. Команда DDE по умолчанию для шаблонов - не «ОТКРЫТА», а «НОВАЯ», что также можно увидеть, если щелкнуть файл правой кнопкой мыши («Новый» выделен жирным шрифтом, а с документами «Открыть» - жирным).
- Дважды щелкните поддельный шаблон: Word создает копию документа, поэтому создается новый файл с именем «Document2» или что-то в этом роде.
- Перейдите в редактор VBA и введите? ActiveDocument.AttachedTemplate, и вы увидите «Нормальный» в качестве ответа. Введите? Activedocument.Type = wdTypeTemplate, и вы увидите «Ложь» в качестве ответа.
Sp Я думаю, документы "Без шаблона" являются только копиями других документов, а не шаблонов. Таким образом, у вас нет возможности найти базовый шаблон.