如何使用VBA禁用MS-Word 2010/2013中的保存,另存为按钮

时间:2013-06-07 06:24:58

标签: vba

使用VBA,我想禁用(或隐藏)MS Word 2013中“文件”菜单中显示的“保存并保存”按钮,以便用户无法单击它们。

我尝试使用此功能禁用这些按钮:

Word.CommandBars("File").Controls("&Save").Enabled = False
Word.CommandBars("File").Controls("&Save").Visible = False

但这没有效果。有什么办法可以禁用这些按钮吗?

2 个答案:

答案 0 :(得分:3)

自2007版以来,“菜单控件”不再通过CommandBars对象模型进行控制。因此,要控制菜单项,我必须定义必须要合并到文档中的Ribbon XML,或者作为一部分加载外接。

要在Word 2010中禁用Save和SaveAs,我使用了以下XML代码:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <commands>
    <command idMso="FileSave" enabled="false" />
    <command idMso="FileSaveAsMenu" enabled="false" />
    <command idMso="FileSaveAsWordDocx" enabled="false" />
    <command idMso="FileSaveAsWordDotx" enabled="false" />
    <command idMso="FileSaveAs" enabled="false" />
    <command idMso="FileSaveAsWord97_2003" enabled="false" />
    <command idMso="FileSaveAsPdfOrXps" enabled="false" />
    <command idMso="FileSaveAsOtherFormats" enabled="false" />
    <command idMso="FileSaveToDocumentManagementServer" enabled="false" />
    <command idMso="SaveSelectionToQuickPartGallery" enabled="false" />
    <command idMso="FrameSaveCurrentAs" enabled="false" />
    <command idMso="FileSaveAsWordOpenDocumentText" enabled="false" />
  </commands>
</customUI>

我使用Custom UI Editor来执行和测试此代码。这个link提供了有关如何使用自定义UI编辑器的很好的培训。

由于

答案 1 :(得分:2)

您可以使用Workbook_BeforeSave事件。

http://msdn.microsoft.com/en-us/library/office/ff840057.aspx

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Cancel = True
End Sub

enter image description here