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

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


2024年7月2日发(作者:)

用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 dBars

If = msoBarTypeMenuBar Or = msoBarTypeNormal Then

If e Then

d = False

If e Then e = False

cmb,

End If

End If

Next cmb

Else

If col Is Nothing Or = 0 Then

For Each cmb In dBars

If = msoBarTypeMenuBar Or = msoBarTypeNormal Then

If Not e Or Not d Then

d = True

If (Not e) And d Then e = True

End If

End If

Next cmb

Else

For Each cmb In col

If Not e Or Not d Then

d = True

If (Not e) And d Then e = 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 DataMicrosoftExcel”文件夹中的“”文件,而在Windows

Vista中,该文件在“C:用户用户名AppDataRoamingMicrosoftExcel”文件夹中。“”文件中保存了Excel 2003

自定义菜单栏和工具栏设置,删除该文件后Excel将自动恢复默认的菜单栏和工具栏。

这样,当我们打开该工作簿时,菜单栏和工具栏将被隐藏,从而可以限制用户的操作。而退出Excel 2003重新打开别的

工作簿后,Excel 2003菜单栏和工具栏会照常显示。

Sub hidebar()

dBars(1).Enabled = False ' 隐藏菜单栏

yFullScreen = True' 全屏显示

dBars("Full Screen").Visible = False

yHorizontalScrollBar = False' 隐藏滚动条

yVerticalScrollBar = False

End Sub

Sub unhidebar()

dBars(1).Enabled = True

yFullScreen = False

With ActiveWindow

.DisplayHorizontalScrollBar = True

.DisplayVerticalScrollBar = True

End With

End Sub

隐藏视图菜单下面工具栏上面的项目?比如隐藏“控件工具箱”。

dBars(1).Controls(3).Controls(3).Enabled = False

EXCEL中菜单栏隐藏的实现

当试图删除office系统的菜单栏(Menu Bar)时,会收到一条错误信息,而使用visible=false的方法,亦只能在代码执行时隐藏,为实现长久隐藏,

参考microsoft文档得出以下代码

Sub Hide()

dBars("Worksheet Menu Bar").Position = msoBarFloating

dBars("Worksheet Menu Bar").Left = -dBars("Worksheet Menu Bar").Width + 1

dBars("Worksheet Menu Bar").Top = -dBars("Worksheet Menu Bar").Height + 1

End Sub

Sub Show()

dBars("Worksheet Menu Bar").Position = msoBarTop

End Sub

注解:将Menu Bar停靠方式改为浮动,修改其位置在屏幕之外;显示再改为顶停靠.

Excel中Menu Bar为Worksheet Menu Bar,其他office文档中仍为Menu Bar.

把Excel中在工具栏位置点右键出现的系统菜单屏蔽掉

1.把下面宏加入文件中,打开即运行。

sub auto_open()

yHeadings = False

yFormulaBar = False

dBars("Formatting").Visible = False

dBars("Standard").Visible = False

end sub

2.可以把用户的操作大大地加以限制,只留下鼠标单击选择某单元格,其它的

功能统统屏蔽掉。连右键快捷菜单都没有哦!

想知道吗?(部分代码,要当心哦,无法回到缺省界面可别怪我。)

Dim cmb As CommandBar

Dim cmc As CommandBarControl

Set mnuSys = dBars("Worksheet Menu Bar")

For Each cmb In dBars

'隐藏除系统菜单外的所有工具条

If <> "Worksheet Menu Bar" Then

If e Then

' cmb,

e = False '隐藏其它工具条

End If

End If

Next

For Each cmc In ls

'隐藏系统菜单的各弹出菜单

e = flase

Next

隐藏系统右键菜单

dBars("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


发布者:admin,转转请注明出处:http://www.yc00.com/news/1719891416a2759095.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信