我试图弄清楚文档是简单文档(.doc,.docx,.docm)还是模板(.dot,.dotx,.dotm)。
我知道有几种方法可以解决这个问题(比如检查文件扩展名),但我正在寻找最“安全”的方法。
我目前的猜测是:
Private Function isTemplate(ByVal Doc As Document) As Boolean
isTemplate = (Doc.FullName = Doc.AttachedTemplate.FullName)
End Function
这可以按预期工作,但我想知道是否有更时尚的方法来实现这一目标。也许有些人缺少isTemplate属性?说不上。
原因:我在模板上创建了一个代码,如果文件没有受密码保护,则不允许用户保存文件。代码就像魅力一样,但是当我在模板中编辑某些内容时,它会让我很烦,因为它没有密码。
答案 0 :(得分:1)
感谢kmote,我找到了解决方案。
如果文档是模板,请检查SaveFormat属性(here是此属性的可能值列表)。
Private Function isTemplate(ByVal Doc As Document) As Boolean
Select Case Doc.SaveFormat
Case wdFormatTemplate, wdFormatDocument97, _
wdFormatXMLTemplate, wdFormatXMLTemplateMacroEnabled, _
wdFormatFlatXMLTemplate, wdFormatFlatXMLTemplateMacroEnabled
isTemplate = True
Case Else
isTemplate = False
End Select
End Function