我正在为我的员工创建一个报告的文档模板,我在底部有一个命令按钮,它将删除报告中的所有命令按钮,并将其保护为只读以关闭报告。
我不希望有人不小心对模板进行这些更改,如果他们碰巧打开它而不是基于它的新文档。
所以我想要一串检查活动文档的代码,如果是.dotm我希望它显示一个消息框并退出。如果它是.docx,我希望它继续使用我编写的其余代码。
我无法返回格式或在IF / THEN语句中使用它。我也无法在网上找到任何东西。这不可能吗?或者我应该检查文件扩展名?如果是这样,我如何将其用作IF / THEN语句中的值?
答案 0 :(得分:0)
该文档可能基于模板,但尚未保存。在这种情况下,它将被称为“Document1”等,没有点。
If InStr(ActiveDocument.Name,".") = 0 Then
'it is a new document, based on a template
ElseIf InStr(ActiveDocument.Name,".dotm") > 0 Then
'it is a/the template
这当然假设ActiveDocument
是正确的。如果他们单击文档中的按钮,那么这是正确的,但是如果他们使用“宏”对话框,那么您可能希望包含其他检查。
我会使用以下内容,忽略大小写的区别(.dotm,.DOTm):
If InStr(UCase(ActiveDocument.Name), ".DOTM") > 0 Then
'it is a template..
Else
'it's just a document
End If
检查ActiveDocument.AttachedTemplate.Name
也很有用,可以确认活动文档是否基于您的模板。