アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBAを使用してエクセルメニューバーのうち、ファイル(F)、編集(E)以外の他のメニューを全て消去又は使用できなくしたいのですが、こんなことできるのでしょうか。
もし、できるのでしたら記述の方法を教えていただきたいのですが。
よろしくお願いします。

A 回答 (2件)

こんにちは



 以下のページがご参考になるのでは?

【エクセル技道場】-ツールバー
http://www2.odn.ne.jp/excel/waza/toolbar.html

[XL97] メニューバーやツールバーを非表示にする方法
http://www.microsoft.com/JAPAN/support/kb/articl …

[XL97] メニュー/サブメニューの追加と削除を行う方法
http://www.microsoft.com/JAPAN/support/kb/articl …

参考URL:http://www2.odn.ne.jp/excel/waza/toolbar.html
    • good
    • 0

メニューバーを自作し、既存のメニューバーと置き換えます。


onActionプロパティにマクロ名やサブルーチン名を設定します。
必要なメニューだけ追加すればよいわけです。
各動作についてはVBAのヘルプを参照して下さい。

Sub ReplaceMenuBar()
Dim myCB As CommandBar

Set myCB = Application.CommandBars.Add _
(Name:="User Menu Bar", Position:=msoBarTop, MenuBar:=True)

'カスタムメニューバーの作成(サブルーチン)
S_AddCmdCtrl myCB

myCB.Visible = True

End Sub


'カスタムメニューバー作成関数
Sub S_AddCmdCtrl(myCB)
Dim myCBCtrl As CommandBarControl

Set myCBCtrl = myCB.Controls.Add(Type:=msoControlPopup)
myCBCtrl.Caption = "ファイル(&F)"

Set myCBCtrl = myCB.Controls("ファイル(&F)").Controls _
.Add(Type:=msoControlButton)
myCBCtrl.Caption = "保存(&S)"
myCBCtrl.OnAction = "S_SaveBook"

Set myCBCtrl = myCB.Controls("ファイル(&F)").Controls _
.Add(Type:=msoControlButton)
myCBCtrl.Caption = "終了(&Q)"
myCBCtrl.OnAction = "S_QuitExcel"
myCBCtrl.BeginGroup = True

--------中略-------------

End Sub

'各メニューの動作
Private Sub S_SaveBook()
ActiveWorkbook.Save
End Sub

Private Sub S_QuitExcel()
Application.Quit
End Sub

この回答への補足

お返事が遅くなり、申し訳ありません。

ご回答で教えていただいた、プロシージャを標準モジュールに記述して実行したところ、

Set myCB = Application.CommandBars.Add _
(Name:="User Menu Bar", Position:=msoBarTop, MenuBar:=True)

のところで、

実行時エラー’5’:
プロシージャの呼び出しまたは引数が不正です。

とのエラーメッセージが表示され、止まってしまいます。

なぜでしょうか。

補足日時:2001/09/11 18:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!