禁用文件>使用VBA在Excel中共享

时间:2018-01-05 11:26:33

标签: vba excel-vba excel

我需要一种方法来禁用用户转到(或使用)菜单文件>的功能。分享

我有类似其他保存命令,如下所示,但也需要这个功能

Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls("Save As...").Enabled = False
Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls("Save").Enabled = False

我试过了:

Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls("Share").Enabled = False

无济于事

我的目标是阻止用户保存此文件的副本(托管在服务器上),我完全理解Excel并不意味着安全,并且始终有一种方法可以做到这一点但是想让它像我一样努力可以为普通的乔

此致

2 个答案:

答案 0 :(得分:1)

您可以使用a for each循环来提取可用的命令:

' Iterate available commands from the file command bar.
Sub PrintAllCommandBarControlNames()

    Dim cbControl As CommandBarControl
    For Each cbControl In Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls

        Debug.Print cbControl.Caption
    Next
End Sub

在Excel 2010上运行,我找不到共享选项。可能只是我的系统。以上回复:

&New...
&Open...
&Close
&Save
Save &As...
Single Web Page (*.mht)
Save &Workspace...
File Searc&h...
Per&mission...
Per&mission
Ch&eck Out
Ch&eck In...
Ve&rsion History...
We&b Page Preview
Page Set&up...
Prin&t Area
Print Pre&view
&Print...
Sen&d To
Propert&ies
&Recent File Name Goes Here
&Recent File Name Goes Here
Sign ou&t
E&xit Excel

答案 1 :(得分:1)

后台'菜单(单击左上角的“文件”菜单时获得的菜单)实际上是功能区的一部分,而不是命令栏。如果您尝试使用示例禁用保存,则会发现他们不会在2010/2013等工作。

这个答案告诉您如何操作功能区中的这些菜单项:Remove "Save & Send" from File menu in Excel 2010 using custom XML,其中一个项目称为TabShare