2013-07-30 47 views
0

我創造了我的員工使用報表的文檔模板,我有在底部的命令按鈕,將刪除所有命令按鈕的報告和保護它只是爲了結束報告。宏返回活動文檔格式的if/then語句

我不希望,如果他們碰巧打開,而不是基於它的新文檔中有人不小心做了這些改變對模板做。

所以我想一串代碼,檢查活動文檔,如果是.dotm我希望它顯示一個消息框,並退出。如果它是一個.docx我希望它繼續我寫的其他代碼。

我一直無法返回格式或IF/THEN語句中使用它。我一直無法在網上找到任何東西。這是不可能的嗎?或者我應該檢查文件擴展名?如果是的話,我將如何使用它作爲IF/THEN聲明中的值?

回答

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也可能是有用的,以確認是否有效文檔是基於模板一個。