Я полагаю, что проблема возникает из-за несоответствия между расширением файла - doc
и указанным форматом файла wdFormatDocument
.
Начиная с Word 2007, формат файла по умолчанию (wdFormatDocument
) относится к формату файла Word Open XML, docx
. Для сохранения в формате doc
необходимо использовать wdFormatDocument97
. Причина, по которой он мог работать с перерывами, заключается в том, что числовое значение этого перечисления равно 0
.
Попробуйте
doc.SaveAs "\\server\Public\" & strDosar & ".doc", FileFormat:=wdFormatDocument97
Или изменить расширение на docx
doc.SaveAs "\\server\Public\" & strDosar & ".docx", FileFormat:=wdFormatDocument
Однако docx
не удалит элементы управления содержимым при следующем открытии документа. (Формат doc
будет, потому что элементы управления содержимым были введены одновременно с новым форматом файла, поэтому они не поддерживаются в старом формате.)
Если дополнительной целью является «устранение всех кодов VBA», то имеет смысл изменить прикрепленный шаблон перед закрытием документа на Normal.dotm. Это удаляет ссылку на прикрепленный шаблон и имеет дополнительное преимущество, заключающееся в том, что документ «найдет» свой шаблон, независимо от того, кто его откроет, позже. (Если прикрепленный шаблон отсутствует, при некоторых обстоятельствах он может задержать открытие на значительное время.)
doc.AttachedTemplate = NormalTemplate
Обратите внимание, что это также облегчит выбор пути к файлу, используя FullName
poperty шаблона:
Documents.Add Template:=ActiveDocument.AttachedTemplate.FullName