Excel VBA質問箱 IV

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

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


12057 / 13645 ツリー ←次へ | 前へ→

【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 発言

【12604】ユーザー設定
質問   E-MAIL  - 04/4/9(金) 9:22 -

引用なし
パスワード
   初めて投稿します。
開いたときにユーザーメニューが追加されるファイルがあります。
この追加されたユーザーメニューに更にコマンドを追加しようとしています。
ですが一度閉じて開きなおしたときに、追加したはずのユーザーメニューが
追加されず、元に戻ってしまうという現象が起こっています。
一度閉じて開きなおしたときに、追加した内容が反映される方法を
ご存知の方いましたら、教えていただけないでしょうか。
よろしくお願いします。

【12605】Re:ユーザー設定
発言  Jaka  - 04/4/9(金) 10:13 -

引用なし
パスワード
   こんにちは。

どうやって追加しているのか解りませんが、手動で追加していると推測しますと、
「開いたときにユーザーメニューが追加されるファイル」のメニューは、マクロで作成していると考えられます。
更に閉じる時にカスが残らないように、きちんと後始末(この場合はメニューの削除)をしている用ですので、「元に戻ってしまうという現象が起こっています。」となるわけです。

新規にマクロを追加して後からコマンドを追加することもできますが、既存のマクロに追加した方が簡単なような気もします。

どちらにしても、メニューを作成しているコードか、ユーザーメニュー名とその構成と、追加したい物が解らない事には何も手が出せません。
その辺りも書かれた方が良いと思います。

【12608】ユーザー設定
質問   E-MAIL  - 04/4/9(金) 10:45 -

引用なし
パスワード
   ▼Jaka さん:
>こんにちは。
>
>どうやって追加しているのか解りませんが、手動で追加していると推測しますと、
>「開いたときにユーザーメニューが追加されるファイル」のメニューは、マクロで作成していると考えられます。

私も最初そう考えました、(開発者として)。
がしかし、添付されているマクロを全て削除をしても
開き直すとユーザーメニューは作られます。
マクロ以外の方法があるのでしょうか?
それがわからなくて、昨日の午後からいろいろ探しています。

【12611】Re:ユーザー設定
発言  Jaka  - 04/4/9(金) 11:12 -

引用なし
パスワード
   >添付されているマクロを全て削除をしても
表現が今一つかみにくいですが、マクロを含むブックを開いた時に「マクロの有効無効」を施すアラートが出るような設定になっていますか?
なっているとして、マクロを全部削除後そのブックを開いた時にマクロの有効無効」を施すアラートがでますか?

>開き直すとユーザーメニューは作られます。
ちょと気になっていたんですが、このユーザーメニューってメニューバーに作られたメニューですか?それともツールバーですか?

【12612】Re:ユーザー設定
質問   E-MAIL  - 04/4/9(金) 11:35 -

引用なし
パスワード
   Jaka さん、返信ありがとうございます。
たびたび、申し訳ありません。
>>添付されているマクロを全て削除をしても
>表現が今一つかみにくいですが、マクロを含むブックを開いた時に「マクロの有効無効」を施すアラートが出るような設定になっていますか?
>なっているとして、マクロを全部削除後そのブックを開いた時にマクロの有効無効」を施すアラートがでますか?
アラートは出る設定になっています(セキュリティレベルは中にしてあります)
マクロを削除した後はアラートは出ませんでした。
>
>>開き直すとユーザーメニューは作られます。
>ちょと気になっていたんですが、このユーザーメニューってメニューバーに作られたメニューですか?それともツールバーですか?
メニューバーに作られたユーザーメニューです。

【12614】Re:ユーザー設定
発言  Jaka  - 04/4/9(金) 11:52 -

引用なし
パスワード
   >>このユーザーメニューってメニューバーに作られたメニューですか?それともツールバーですか?
>メニューバーに作られたユーザーメニューです。

恐れていた事が....。
もしかしてExcel95ですか?
Excel95は、メニューバーのボタンを添付できたらしいんですが、扱い方を知りません。

95をお使いの様でしたら、その辺りをヘルプで調べて見てください。
すみません。

【12616】Re:ユーザー設定
発言   E-MAIL  - 04/4/9(金) 11:59 -

引用なし
パスワード
   >>>このユーザーメニューってメニューバーに作られたメニューですか?それともツールバーですか?
>>メニューバーに作られたユーザーメニューです。
>
>恐れていた事が....。
>もしかしてExcel95ですか?
>Excel95は、メニューバーのボタンを添付できたらしいんですが、扱い方を知りません。
>
>95をお使いの様でしたら、その辺りをヘルプで調べて見てください。
>すみません。
Excelのバージョンは2000です。(OSはXP Pro)
ただ、預かってきたファイルを作られた時期はかなり古いです。
古いバージョンのExcelで作られたものを2000に
コンバートしたのではないかと思われます。
Excel2000でファイルを開くときに「以前のバージョンで・・・」の
アラートは出ませんでした。

【12630】Re:ユーザー設定(解決♪)
お礼   E-MAIL  - 04/4/9(金) 15:40 -

引用なし
パスワード
   問題は解決しました。
Jakaさんのおっしゃる通り、Excel95で作成されたファイルでした。
でも、疑問が・・・???。
なんでMicrosoftは95で使っていたメニューエディタを2000に
引き継がなかったのでしょうか?
開発する立場として残しておいてもらいたかったのに・・・。
上位バージョンって下位バージョンを完全に包括するはずじゃ
ありませんでしたっけ?(言ってもしかたないけど)
とりあえず、完了しました。
ありがとうございました。

【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

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