为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

用VBA隐藏Excel2003菜单栏和工具栏

2011-02-18 5页 doc 40KB 95阅读

用户头像

is_737352

暂无简介

举报
用VBA隐藏Excel2003菜单栏和工具栏用VBA隐藏Excel2003菜单栏和工具栏 用VBA隐藏Excel2003菜单栏和工具栏 在Excel 2003中,有时需要限制用户的操作,例如当用户打开某个指定的工作簿时,Excel 2003菜单栏和工具栏被隐藏起来。而当关闭该工作簿重新打开其他工作簿后,菜单栏和工具栏又恢复正常。用VBA代码可以实现这个目的,步骤如下:     1.打开需要屏蔽菜单栏和工具栏的工作簿,按Alt+F11,打开VBA编辑器。     2.在“工程”窗口(视图-工程管理器)中选择“ThisWorkBook”,在右侧的代码窗口中输入下面的代码: ...
用VBA隐藏Excel2003菜单栏和工具栏
用VBA隐藏Excel2003菜单栏和工具栏 用VBA隐藏Excel2003菜单栏和工具栏 在Excel 2003中,有时需要限制用户的操作,例如当用户打开某个指定的工作簿时,Excel 2003菜单栏和工具栏被隐藏起来。而当关闭该工作簿重新打开其他工作簿后,菜单栏和工具栏又恢复正常。用VBA代码可以实现这个目的,步骤如下:     1.打开需要屏蔽菜单栏和工具栏的工作簿,按Alt+F11,打开VBA编辑器。     2.在“工程”窗口(视图-工程管理器)中选择“ThisWorkBook”,在右侧的代码窗口中输入下面的代码: Private Sub Workbook_BeforeClose(Cancel As Boolean) showhide (bHide = True) End Sub Private Sub Workbook_Open() showhide (bHide = False) End Sub Sub showhide(Optional bHide As Boolean) Dim cmb As CommandBar Static col As New Collection If bHide Then For Each cmb In Application.CommandBars If cmb.Type = msoBarTypeMenuBar Or cmb.Type = msoBarTypeNormal Then If cmb.Visible Then cmb.Enabled = False If cmb.Visible Then cmb.Visible = False col.Add cmb, cmb.Name End If End If Next cmb Else If col Is Nothing Or col.Count = 0 Then For Each cmb In Application.CommandBars If cmb.Type = msoBarTypeMenuBar Or cmb.Type = msoBarTypeNormal Then If Not cmb.Visible Or Not cmb.Enabled Then cmb.Enabled = True If (Not cmb.Visible) And cmb.Enabled Then cmb.Visible = True End If End If Next cmb Else For Each cmb In col If Not cmb.Visible Or Not cmb.Enabled Then cmb.Enabled = True If (Not cmb.Visible) And cmb.Enabled Then cmb.Visible = True End If Next cmb End If Set col = Nothing End If End Sub     3.在退出该工作簿前,先要让菜单栏和工具栏隐藏起来,方法是:鼠标在代码 Private Sub Workbook_Open() showhide (bHide = False) End Sub     中间单击一下,让光标停留在这段代码中间,然后按F5键运行该段代码,这时Excel中的菜单栏和工具栏都将被隐藏。     说明:这一步十分重要,不能省略,如果保存工作簿后不运行该段代码而直接退出,下次打开Excel时,Excel中的所有工具栏都将会显示在界面中。万一出现这种情况,可以用下面的方法让Exce恢复默认的工具栏设置。在Windows XP中,删除“C:\Documents and Settings\用户名\Application Data\Microsoft\Excel”文件夹中的“Excel11.xlb”文件,而在Windows Vista中,该文件在“C:\用户\用户名\AppData\Roaming\Microsoft\Excel”文件夹中。“Excel11.xlb”文件中保存了Excel 2003自定义菜单栏和工具栏设置,删除该文件后Excel将自动恢复默认的菜单栏和工具栏。     这样,当我们打开该工作簿时,菜单栏和工具栏将被隐藏,从而可以限制用户的操作。而退出Excel 2003重新打开别的工作簿后,Excel 2003菜单栏和工具栏会照常显示。 Sub hidebar()              Application.CommandBars(1).Enabled = False ' 隐藏菜单栏     Application.DisplayFullScreen = True' 全屏显示     Application.CommandBars("Full Screen").Visible = False         ActiveWindow.DisplayHorizontalScrollBar = False' 隐藏滚动条         ActiveWindow.DisplayVerticalScrollBar = False End Sub Sub unhidebar()     Application.CommandBars(1).Enabled = True     Application.DisplayFullScreen = False     With ActiveWindow         .DisplayHorizontalScrollBar = True         .DisplayVerticalScrollBar = True     End With End Sub 隐藏视图菜单下面工具栏上面的项目?比如隐藏“控件工具箱”。 Application.CommandBars(1).Controls(3).Controls(3).Enabled = False EXCEL中菜单栏隐藏的实现 当试图删除office系统的菜单栏(Menu Bar)时,会收到一条错误信息,而使用visible=false的方法,亦只能在代码执行时隐藏,为实现长久隐藏,参考microsoft文档得出以下代码 Sub Hide()      Application.CommandBars("Worksheet Menu Bar").Position = msoBarFloating      Application.CommandBars("Worksheet Menu Bar").Left = -Application.CommandBars("Worksheet Menu Bar").Width + 1      Application.CommandBars("Worksheet Menu Bar").Top = -Application.CommandBars("Worksheet Menu Bar").Height + 1 End Sub Sub Show()      Application.CommandBars("Worksheet Menu Bar").Position = msoBarTop End Sub 注解:将Menu Bar停靠方式改为浮动,修改其位置在屏幕之外;显示再改为顶停靠.     Excel中Menu Bar为Worksheet Menu Bar,其他office文档中仍为Menu Bar. 把Excel中在工具栏位置点右键出现的系统菜单屏蔽掉 1.把下面宏加入文件中,打开即运行。 sub auto_open() ActiveWindow.DisplayHeadings = False Application.DisplayFormulaBar = False Application.CommandBars("Formatting").Visible = False Application.CommandBars("Standard").Visible = False end sub 2.可以把用户的操作大大地加以限制,只留下鼠标单击选择某单元格,其它的 功能统统屏蔽掉。连右键快捷菜单都没有哦! 想知道吗?(部分代码,要当心哦,无法回到缺省界面可别怪我。) Dim cmb As CommandBar Dim cmc As CommandBarControl Set mnuSys = Application.CommandBars("Worksheet Menu Bar") For Each cmb In Application.CommandBars '隐藏除系统菜单外的所有工具条 If cmb.Name <> "Worksheet Menu Bar" Then If cmb.Visible Then 'colVisualCommandBars.Add cmb, cmb.Name cmb.Visible = False '隐藏其它工具条 End If End If Next For Each cmc In mnuSys.Controls '隐藏系统菜单的各弹出菜单 cmc.Visible = flase Next   隐藏系统右键菜单 Application.CommandBars("toolbar list").Enabled = False 能实现,把代码写在相应的 Sub zldccmx()     With Application         .CommandBars("Standard").Visible = True  '显示常用工具栏         .CommandBars("Formatting").Visible = True '显示格式栏         .DisplayFormulaBar = True    '显示编辑栏         .DisplayStatusBar = True '显示状态栏         .CommandBars("Worksheet Menu Bar").Enabled = True '显示菜单     End With End Sub 如果要隐藏,只需将上面代码中的 True 改成 False 即可 Private Sub Workbook_BeforeClose(Cancel As Boolean)  With Application         .CommandBars("Standard").Visible = True  '显示常用工具栏         .CommandBars("Formatting").Visible = True '显示格式栏         .DisplayFormulaBar = True    '显示编辑栏         .DisplayStatusBar = True '显示状态栏         .CommandBars("Worksheet Menu Bar").Enabled = True '显示菜单     End With End Sub Private Sub Workbook_Open()  With Application         .CommandBars("Standard").Visible = False  '显示常用工具栏         .CommandBars("Formatting").Visible = False '显示格式栏         .DisplayFormulaBar = False    '显示编辑栏         .DisplayStatusBar = False '显示状态栏         .CommandBars("Worksheet Menu Bar").Enabled = True '显示菜单     End With End Sub
/
本文档为【用VBA隐藏Excel2003菜单栏和工具栏】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索