3

我试图弄清楚文档是简单文档(.doc、.docx、.docm)还是模板(.dot、.dotx、.dotm)。

我知道有几种方法可以解决这个问题(比如检查文件扩展名),但我正在寻找最“安全”的一种。

我目前的猜测是:

Private Function isTemplate(ByVal Doc As Document) As Boolean
    isTemplate = (Doc.FullName = Doc.AttachedTemplate.FullName)
End Function

这按预期工作,但我想知道是否有更时尚的方式来实现这一目标。也许缺少一些 isTemplate 属性?不知道。

原因:我在模板上创建了一个代码,如果没有密码保护,则不允许用户保存文件。该代码就像一个魅力,但是当我在模板中编辑某些内容时它让我感到厌烦,因为它没有密码。

4

1 回答 1

1

感谢kmote,我找到了解决方案。

如果文档是模板,只需检查SaveFormat属性(这里是该属性的可能值列表)。

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
于 2014-04-17T00:27:39.050 回答