こんにちは、阿久津です。今週はメニューバーに対する考察をお届けします。そもそもメニューバーはWindows 2.0の時点で搭載された機能。アプリケーションに対する操作や設定に欠かせない機能となり、現在のWindows OSにも受け継がれています(図01)。

図01: Windows 3.1のプログラムマネージャ。既にメニューバーによる操作が可能になっています

しかし、Windows Vistaに搭載されたエクスプローラでは、ツールバーにある<整理>ボタンと右クリックで表示されるコンテキストメニュー、そしてショートカットキーによる操作により、メニューバーを過去の物としました。それでも下位互換性を重要視するMicrosoftらしく、メニューバーが必要な人向けに[Alt]キーで一時表示させる機能や、<整理>ボタン→<レイアウト>→<メニューバー>とクリックすることで常時表示が有効にする機能を備えています(図02~03)。

図02: ファイルやフォルダを選択してから、<整理>ボタンをクリックしますと、様々な操作が可能になります

図03: エクスプローラのメニューバーは、<整理>ボタン→<レイアウト>→<メニューバー>とクリックすることで常時表示、[Alt]キーを押せば一時表示されます

このようにエクスプローラにおけるメニューバーは、前面に押し出されない機能となっているため、Windows VistaがはじめてのOSとなる方は、気にされたこともないのでは。ここで今号の表題となる"メニューバーが表示されないトラブル"の登場です。そもそもエクスプローラのメニューバーは、HKEY_CLASSES_ROOT \ CLSID \ {5b4dae26-b807-11d0-9815-00c04fd91972}キーで定義されているクラスIDで実現しています(アプリケーションの場合は、DLLファイルを呼び出しています)。前述のように、エクスプローラが起動した状態で[Alt]キーを押すとメニューが表示されますが、同キーが存在しない場合、どのような操作を行なってもメニューバーは表示されません(図04)。

図04: HKEY_CLASSES_ROOT \ CLSID \ {5b4dae26-b807-11d0-9815-00c04fd91972}キーが存在しませんと、<メニューバー>にチェックを入れてもメニューバーが表示されません

つまり、スタートメニューもエクスプローラの一部となるため、メニューが表示されなくなるのです。例えばコントロールパネルをリンクからメニュー形式に切り替えていても、メニューが表示されません。特にWindows Vistaでは電源ボタンがメニュー形式になっているため、Shutdown.exeの使用を強いられてしまいます(図05)。

図05: スタートメニューもエクスプローラの一機能であるため、同キーが存在しないとメニューが表示されなくなります

それではこのトラブルに見舞われているユーザー向けに、前述したクラスIDの復元手順をお送りしましょう。


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{5b4dae26-b807-11d0-9815-00c04fd91972}]
@="Menu Band"

[HKEY_CLASSES_ROOT\CLSID\{5b4dae26-b807-11d0-9815-00c04fd91972}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,00,00
"ThreadingModel"="Apartment"
reg.txt」を用意しました。レジストリ情報の入力が面倒な方はこちらをダウンロードし、ファイル名を「MenuBar.reg」に変更してお使いください。

上記の囲みを参考にレジストリファイルを作成し、ファイル名を「"MenuBar.reg"」とダブルコーテーションと拡張子を付け、文字コードをUnicode形式に変更して保存します。次に作成したレジストリファイルをダブルクリックしてシステムに取り込みましょう。レジストリエディタを起動し、正しく取り込まれているか確認します。問題がなければ、レジストリエディタを終了させましょう(図06~11)。

図06: 上記の囲みにある内容をそのままメモ帳などを使って記述します

図07: 「"MenuBar.reg"」などダブルコーテーションと「.reg」を付けた任意のファイル名を付け、デスクトップなどに「Unicode」形式で保存します

図08: 先ほど作成したレジストリファイルをダブルクリックし、確認をうながすダイアログが表示されたら、<はい>ボタンをクリックします

図09: 引き続き結果を示すダイアログが表示されますので、<OK>ボタンをクリックします

図10: 「ファイル名を指定して実行」や「クイック検索」のテキストボックスに「regedit」と入力して[Enter]キーを押します

図11: HKEY_CLASSES_ROOT \ CLSID \ {5b4dae26-b807-11d0-9815-00c04fd91972}キーを開き、内容を確認します。問題がなければレジストリエディタを終了しましょう

これで設定完了です。スタートメニューを開き、電源ボタンのサブメニューボタンをクリックしますと、メニューが表示され、エクスプローラでも[Alt]キーを押せばメニューバーが表示されるようになります。表題のように、エクスプローラ関連のメニューが表示されないトラブルに見舞われてしまった場合にお試しください。

図12: 設定完了後はスタートメニューにある項目のメニューも表示されるようになります

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)