Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


68610 / 76734 ←次へ | 前へ→

【12657】メニュー(メニューエディタ)について
発言  谷 誠之 E-MAIL  - 04/4/9(金) 22:00 -

引用なし
パスワード
   Tさん、Jakaさん、主宰者の谷です。

問題が解決してから登場するのはナニですが、念のために補足しておきます。

>なんでMicrosoftは95で使っていたメニューエディタを2000に
>引き継がなかったのでしょうか?

Excel 5.0、Excel 95 に存在していた「メニューエディタ」がなくなったのは、Excel 97 からです。理由は、

  メニューがメニューじゃなくなったから

です。???

Excel 95 までは、「メニュー」と「ツールバー」は全く異なるオブジェクト(部品)でした。メニューを操作するには Menus コレクション、ツールバーを操作するには ToolBars コレクションを使います。
また、オリジナルのメニューを作成するための「メニューエディタ」が存在しました。メニューエディタで記述したメニューは、現在作業中のブックに保存されます。ブックと、そのブックに含まれるマクロと、そのマクロを実行するためのメニューはまさに「ワンセット」だったんです。メニューを含むブックを開くと、そのメニューが自動的に使用可能になり、そのブックを閉じるとメニューも一緒に消えます。

しかし、Excel 97 から完全に仕様が変わりました。「メニュー」と「ツールバー」はまったく同じもの、になったのです。極端な話をすれば、メニューバーにコマンドボタンを貼り付けることもできますし、ツールバーにメニュー項目を貼り付けることもできるようになったのです。操作も CommandBars コレクションを用いて行います。メニューのカスタマイズはExcelそのものに保存されるようになりました。

このように仕様がまるっきり変わったので、メニューエディタではメニューを操作できなくなり、消え去ってしまったのです。

>上位バージョンって下位バージョンを完全に包括するはずじゃ
>ありませんでしたっけ?(言ってもしかたないけど)

中途半端に包括しています。
カスタムメニューを含むブック(つまり、メニューエディタで作成したメニューを含むブック)を開いたら、そのメニューはちゃんとExcelに反映されます。もちろん、メニューを選択したらマクロも動作します。また、Menus コレクションも Toolbars コレクションも、下位互換のために利用可能になっています(推奨されていません。CommandBars コレクションで行える操作にお一部が行えないためです)。

目安箱に、私が作ったメニュー操作関数を紹介しておきました。
ご参考になれば幸いです。

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=42;id=FAQ

3 hits

【12604】ユーザー設定 04/4/9(金) 9:22 質問
【12605】Re:ユーザー設定 Jaka 04/4/9(金) 10:13 発言
【12608】ユーザー設定 04/4/9(金) 10:45 質問
【12611】Re:ユーザー設定 Jaka 04/4/9(金) 11:12 発言
【12612】Re:ユーザー設定 04/4/9(金) 11:35 質問
【12614】Re:ユーザー設定 Jaka 04/4/9(金) 11:52 発言
【12616】Re:ユーザー設定 04/4/9(金) 11:59 発言
【12630】Re:ユーザー設定(解決♪) 04/4/9(金) 15:40 お礼
【12657】メニュー(メニューエディタ)について 谷 誠之 04/4/9(金) 22:00 発言

68610 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free