0

我正在为我的员工使用的报告创建一个文档模板,我在底部有一个命令按钮,它将删除报告中的所有命令按钮并将其保护为只读以关闭报告。

如果他们碰巧打开模板而不是基于它的新文档,我不希望有人意外地对模板进行这些更改。

所以我想要一个检查活动文档的代码字符串,如果它是 .dotm 我希望它显示一个消息框并退出。如果它是 .docx,我希望它继续使用我编写的其余代码。

我无法返回格式或在 IF/THEN 语句中使用它。我也无法在网上找到任何东西。这是不可能的吗?还是我应该检查文件扩展名?如果是这样,我将如何将其用作 IF/THEN 语句中的值?

4

1 回答 1

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也很有用,以确认活动文档是否基于您的模板。

于 2013-07-30T16:07:08.887 回答