iT邦幫忙

16

[Excel VBA]關掉 Excel Menu Bar 的方法

Excel 是一個相當好用的工具,提供了相當多的內建函數與巨集可以讓我們做出相當漂亮與豐富的報表。

但對於習慣寫程式或者是需要使用 Excel 來當作程式主體的人來說,這些 Menu Bar 可以說是擾亂程式的元兇。

所以本篇就要介紹,如何關掉 Excel 的 Menu Bar,讓 Excel 看起來乾乾淨淨。
其實只有一個指令,

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

這個指令是將主 Menu 關掉的意思,其他的像 ToolBar 等都還會存在。

如果您只想要關掉某些功能呢?

首先您要知道那些功能的名稱是什麼,怎麼知道呢? Google? 可能找到的都是片段,可以透過一段程式將所有的 Menu Bar 名稱 Show 出來,如下面這一小段程式碼

Dim oBar as CommandBar

For Each oBar in Application.CommandBars
  Debug.Print oBar.Name
Next

這樣就可以知道有哪些 Menu Bar 存在於 Excel 中,所以將這些名稱透過 Application.CommandBars 的指令,一一把它關掉即可。

您必須在一開啟 Workbook 時就去下這一段的指令(在 ThisWorkBook當中),如:

Private Sub Workbook_Open()
  Application.CommandBars("Worksheet Menu Bar").Enabled=False
End Sub

將上述的動作寫成了一個 VB Module,提供開關的方式供邦友參考。有些功能表的名稱需要對照(或Google)一下,或是測試一下關掉的是哪一個部份。也歡迎邦友修正後再分享出來。

原始碼:mdlMenu.bas

今天 Google 時,發現了一篇很詳盡的文章
http://www.rondebruin.nl/menuid.htm


0
海綿寶寶
iT邦超人 1 級 ‧ 2008-12-04 11:04:26

有一次我加了一項功能表項目進去
結果不會刪掉
之後每次進 Excel 都有那個項目

不會刪倒還好
刪了加不回來才會傷腦筋 ^_^

0
jamesjan
iT邦高手 1 級 ‧ 2008-12-09 08:31:00

如果是刪掉 Excel 內建的功能表
可以在Excel 的 工作表標籤上按右鍵,選檢視程式碼
開啟 VBA Editor,然後在 ThisWorkbook 中加入

<pre class="c" name="code">
Application.CommandBars("worksheet menu bar").reset

即可將 Menu 回復(沒試過)

參考資料:

<pre class="c" name="code">http://qa.pcuser.com.tw/modules/newbb/viewtopic.php?viewmode=flat&topic_id=25382&forum=24
0
jamesjan
iT邦高手 1 級 ‧ 2008-12-09 08:35:41

Sorry, 用錯標籤
http://qa.pcuser.com.tw/modules/newbb/viewtopic.php?viewmode=flat&topic\_id=25382&forum=24

<pre class="c" name="code">
Private Sub Workbook_Open()
  Application.CommandBars("worksheet menu bar").reset
End Sub

沒試是因為怕刪掉後,回復不了要重裝...XD

0
jamesjan
iT邦高手 1 級 ‧ 2008-12-10 16:41:47

今天 Google 時,發現了一篇很詳盡的文章
http://www.rondebruin.nl/menuid.htm

0
cliff1015
iT邦新手 5 級 ‧ 2010-10-12 09:36:38

我使用下列VBA Code隱藏所有功能選項,僅供參考!
Sub RemoveToolbars()
On Error Resume Next
With Application
.DisplayFullScreen = True
.DisplayFormulaBar = False
.DisplayStatusBar = False
.CommandBars("Full Screen").Visible = False
.CommandBars("Standard").Visible = False
.CommandBars("Formatting").Visible = False
.CommandBars("Worksheet Menu Bar").Enabled = False
End With
On Error GoTo 0
End Sub

我要留言

立即登入留言