現在オフラインです。再接続するためにインターネットの接続を待っています

Excel のメニューおよびメニュー バーをカスタマイズする方法

Office 2003 のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Office 2003 のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

概要
この資料では、Microsoft Excel 2000 以降のメニューおよびメニュー バーをカスタマイズする方法について説明します。この資料では、Microsoft Excel のメニュー バー、メニュー、コマンド、サブメニュー、およびショートカット メニューをプログラムによって管理、カスタマイズするための手順について説明し、サンプル コードを提供します。

この資料の内容

はじめに
Microsoft Excel 2000、Microsoft Excel 2002、および Microsoft Office Excel 2003 のメニュー バーとメニューのカスタマイズに関連して、多くの共通のタスクを実行するには、[カスタマイズ] ダイアログ ボックスを使用します。より高度なタスクを実行したり、カスタム プログラムのメニュー バーとメニューを作成したりするには、Microsoft Visual Basic for Applications (VBA) コードを使用できます。

[カスタマイズ] ダイアログ ボックスの使用方法の詳細については、[ヘルプ] メニューの [Microsoft Excel ヘルプ] をクリックし、Office アシスタントまたはアンサー ウィザードでメニュー バーをカスタマイズすると入力し、[検索の開始] をクリックして表示されるトピックを参照してください。

この資料には、メニュー バー、メニュー、メニュー項目、サブメニュー、およびショートカット メニューをカスタマイズするために、VBA コードを作成する方法について記載されています。

先頭に戻る
詳細
マイクロソフトは、この情報をプログラミング言語の使用方法の一例として提供するだけであり、市場性および特定目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。この資料は、例示されているプログラミング言語やプロシージャの作成およびデバッグに使用するツールについて理解されているユーザーを対象としています。Microsoft Support 担当者は、特定のプロシージャの機能についての問い合わせにはお答えできますが、ユーザー固有の目的に合わせた機能の追加、プロシージャの作成などの内容変更は行っておりません。

この資料の例

この資料の例では、メニューをカスタマイズするために、Excel 2000、Excel 2002、および Excel 2003 の VBA コードを使用します。サンプルのマクロを使用するには、次の手順を実行します。
  1. Excel を起動します。
  2. [ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
  3. [挿入] メニューの [標準モジュール] をクリックします。
  4. この資料のサンプルのマクロのいずれかを入力するか、コピーと貼り付けの操作を実行して、サンプルのマクロをモジュール シートにコピーします。
  5. [実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
  6. [マクロ] ダイアログ ボックスが表示されたら、マクロ名をクリックし、[実行] をクリックします。
先頭に戻る

コマンド バー

Microsoft Office では、ツール バー、メニュー バー、およびショートカット メニューはすべて、1 種類のオブジェクト、コマンド バーとしてプログラムにより制御されます。VBA では、次の項目はすべて CommandBar オブジェクトとして表されます。
  • メニュー バー、ツール バー、およびショートカット メニュー
  • メニュー バーおよびツール バーのメニュー
  • メニュー、サブメニュー、およびショートカット メニューのサブメニュー
組み込みのメニュー バー、または組み込みのツール バーを変更できます。また、VBA コードで表示するカスタムのツール バー、メニュー バー、およびショートカット メニューの作成および変更が行えます。プログラムの機能は、ツール バーの個々のボタン、またはメニューのコマンド名のグループで表します。ツール バーとメニューは両方ともコマンド バーであるため、同じ種類のコントロールを使用します。

VBA と Microsoft Visual Basic では、ボタンとメニュー項目は CommandBarButton オブジェクトで表されます。メニューやサブメニューを表示するポップアップ コントロールは CommandBarPopup オブジェクトで表されます。以下の例で、"Menu" という名前のコントロールと "Submenu" という名前のコントロールはいずれも、メニューおよびサブメニューを表示するポップアップ コントロールです。メニューとサブメニューは両方とも、独自のコントロール セットを持つ一意の CommandBar オブジェクトです。

Microsoft Excel では、メニュー バーとツール バーは同じプログラム可能な種類のオブジェクト、CommandBar オブジェクトとして参照されます。CommandBar オブジェクトのコントロールを使用して、メニュー、メニュー項目、サブメニュー、およびショートカット メニューを参照します。メニュー、サブメニュー、またはコマンドとして使用するコントロールの種類を指定するには、各コントロールに定数を Type 引数で指定します。

先頭に戻る

制御定数

以下は、Excel 2003 において、特定のメニュー バー コントロールとして使用するグラフィカル コントロールの種類を指定する制御定数です。
  • MsoControlActiveX*
  • MsoControlAutoCompleteCombo***
  • MsoControlButton
  • MsoControlButtonDropdown
  • MsoControlButtonPopup
  • MsoControlComboBox
  • MsoControlCustom
  • MsoControlDropdown
  • MsoControlEdit
  • MsoControlExpandingGrid
  • MsoControlGauge
  • MsoControlGenericDropdown
  • MsoControlGraphicCombo
  • MsoControlGraphicDropdown
  • MsoControlGraphicPopup
  • MsoControlGrid
  • MsoControlLabel
  • MsoControlLabelEx***
  • MsoControlOCXDropDown
  • MsoControlPane**
  • MsoControlPopup
  • MsoControlSpinner***
  • MsoControlSplitButtonMRUPopup
  • MsoControlSplitButtonPopup
  • MsoControlSplitDropdown
  • MsoControlSplitExpandingGrid
  • MsoControlWorkPane**
*=Microsoft Excel 2000 で新規
**=Microsoft Excel 2002 で新規
***=Microsoft Excel 2003 で新規

先頭に戻る

メニュー バー

メニュー バーはコマンド バーの一種です。メニュー バーは、メニュー、メニュー項目、およびサブメニューが追加されるオブジェクトです。

Excel のメニュー バーとメニュー項目を管理する方法を参照するには、次の手順を実行します。
  1. Microsoft Visual Basic Editor を起動します。
  2. [ヘルプ] メニューの [Microsoft Visual Basic ヘルプ] をクリックします。
  3. [Office アシスタント] ボックスまたは [アンサー ウィザート] ボックスで、メニュー バーと入力し、[検索] をクリックします。
  4. Excel 2003 および Excel 2002 では、[メニュー バーおよびメニュー項目の追加と変更] をクリックします。Excel 2000 では、[メニューおよびツール バーについて] をクリックします。
メニュー バーとそのメニュー バーのコントロールは両方とも、実行時に変更できます。メニュー バーを変更すると、メニュー バーの外観や位置が影響を受けることがあります。コントロールの変更は、コントロールの種類に依存します。次の表は、コントロールの状態、操作、または内容を変更するための最も一般的なプロパティおよび一般的なメソッドを示したものです。
プロパティまたはメソッド目的
AddCommandBars オブジェクト コレクションの Add メソッドを使用し、Menubar 引数に TRUE を指定して、メニュー バーを追加します。
EnabledEnabled プロパティが TRUE に設定されている場合、Visual Basic コードを使用して、指定のメニュー バーを表示することができます。Enabled プロパティが FALSE に設定されている場合、メニュー バーを表示することはできません。ただし、利用可能なコマンド バーの一覧にはメニュー バーが表示されます。
Protectionメニュー バーをユーザーの特定の操作から保護することができます。
Position新しいメニュー バーの位置を、プログラム ウィンドウと相対的に指定します。プログラム ウィンドウと相対的にメニュー バーの位置を指定するには、msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup (ショートカット メニューの作成に使用)、または msoBarMenuBar (Apple Macintosh でのみ使用) のいずれかの MsoBarPosition 定数プロパティを使用します。
Visibleコントロールを表示するか表示しないかを指定します。

先頭に戻る

コマンド バー コントロールの ID を返す

次のサンプル コードは、アクティブなメニュー バーの ID を返します。
Sub Id_Control ()Dim myId as Object   set myId = CommandBars("Worksheet Menu Bar").Controls("ツール(&T)")   MsgBox myId.Caption & Chr(13) & MyId.IdEnd Sub

先頭に戻る

アクティブなメニュー バーの名前を決定する

次のサンプル コードは、アクティブなメニュー バーの名前を返します。
Sub MenuBars_GetName()   MsgBox CommandBars.ActiveMenuBar.NameEnd Sub

先頭に戻る

組み込み、またはカスタマイズしたメニュー バーのアクティブな状態を保存する

OriginalMenuBar 変数をパブリック変数として宣言し、サブルーチンがそれを Auto_Close サブルーチンなどの別のサブルーチンで使用できるようにします。変数をこのように宣言して使用すると、使用していたメニュー バーがその元の状態にリセットされます。次のサンプル マクロはメニュー バーをリセットします。
Public OriginalMenuBar as ObjectSub MenuBars_Capture()   Set OriginalMenuBar = CommandBars.ActiveMenuBarEnd Sub

先頭に戻る

カスタム コマンド バーを作成する

次のサンプル コードは、My Command Bar という名前のカスタム コマンド バーを作成します。
Sub MenuBar_Create() Application.CommandBars.Add Name:="My command bar" End Sub

Temporary:=True という引数を使用してカスタム コマンド バーを作成することもできます。引数に Temporary:=True を指定すると、Excel の終了時にコマンド バーが自動的にリセットされます。次のコードでは、Temporary:=True を使用してカスタム コマンド バーを作成します。
Sub MenuBar_Create()Application.CommandBars.Add Name:="My command bar", Temporary:=TrueEnd Sub
先頭に戻る

カスタム コマンド バーを表示する

次の例は、[My Custom Bar] カスタム メニュー バーを作成して表示し、次に、組み込みのメニュー バーを置き換えます。
Sub MenuBar_Show()Dim myNewBar As Object   Set myNewBar = CommandBars.Add(Name:="Custom1", Position:=msoBarFloating)   ' You must first enable your custom menu bar before you make it visible.   ' Enabling a menu bar adds it to the list of available menu bars on   ' the Customize dialog box.' Setting the menubar property to True replaces the built-in menu bar.   myNewBar.Enabled = True   myNewBar.Visible = TrueEnd Sub

先頭に戻る

カスタム コマンド バーを削除する

次のサンプル コードは、[Custom 1] という名前のカスタム メニュー バーを削除します。
Sub MenuBar_Delete()   CommandBars("Custom1").DeleteEnd Sub

先頭に戻る

コマンド バーを表示しない

次のサンプル コードは、利用可能なメニュー バーの一覧から、組み込みの Chart メニュー バーを削除します。
Sub MenuBar_Display()   CommandBars("Chart").Enabled = FalseEnd Sub

先頭に戻る

コマンド バーを表示する

次のサンプル コードは、利用可能なメニュー バーの一覧から、組み込みの Chart メニュー バーを追加します。
Sub MenuBar_Display()   CommandBars("Chart").Enabled = TrueEnd Sub

先頭に戻る

組み込みのコマンド バーを復元する

メニュー バーを復元すると、(メニューとメニュー項目の両方の) デフォルトのコントロールがリセットされます。次のサンプル コードは、組み込みの Chart メニュー バーを復元します。
Sub MenuBar_Restore()   CommandBars("Chart").ResetEnd Sub
: 組み込みのメニュー バーのみリセットできます。カスタム メニュー バーはリセットできません。

先頭に戻る

メニュー

メニュー バーを復元すると、(メニューとメニュー項目の両方の) デフォルトのコントロールがリセットされます。次のサンプル コードは、組み込みの Chart メニュー バーを復元します。
Sub MenuBar_Restore()   CommandBars("Chart").ResetEnd Sub
: 組み込みのメニュー バーのみリセットできます。カスタム メニュー バーはリセットできません。

先頭に戻る

コマンド バーにカスタム メニュー コントロールを追加する

次のサンプル コードは、プログラムにより追加するメニューの名前をワークシート メニュー バーに追加します。たとえば、このコードでは、"New Menu" というメニュー名をワークシート メニュー バーに追加します。

: このメニューには任意の名前を付けることができます。
Sub Menu_Create()Dim myMnu As Object   Set myMnu = CommandBars("Worksheet menu bar").Controls. _      Add(Type:=msoControlPopup, before:=3)   With myMnu   ' The "&" denotes a shortcut key assignment (Alt+M in this case).      .Caption = "New &Menu"   End WithEnd Sub

先頭に戻る

コマンド バーのメニュー コントロールを無効にする

無効になっているメニュー コントロールはコマンド バーで淡色表示され、使用できません。次の例は [New Menu] メニューを無効にします。
Sub Menu_Disable()   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = FalseEnd Sub

先頭に戻る

コマンド バーのメニュー コントロールを有効にする

次のサンプル コードは、「コマンド バーのメニュー コントロールを無効にする」で無効にした [New Menu] メニューを有効にします。
Sub Menu_Disable()   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = TrueEnd Sub

先頭に戻る

コマンド バーのメニュー コントロールを削除する

次のサンプル コードは、「コマンド バーにカスタム メニュー コントロールを追加する」で作成した [New Menu] メニューをワークシート メニュー バーから削除します。
Sub Menu_Delete()   CommandBars("Worksheet menu bar").Controls("New &Menu").DeleteEnd Sub

先頭に戻る

コマンド バーのメニュー コントロールを復元する

次のサンプル コードは、組み込みの [Chart] メニュー バーをワークシート メニュー バーに復元します。
Sub Menu_Restore()Dim myMnu As Object   Set myMnu = CommandBars("Chart")   myMnu.ResetEnd Sub

先頭に戻る

コマンド

コマンドに対して行える変更の範囲は、コントロールの種類に依存します。一般的に、ボタンは有効にしたり隠したりできます。編集ボックス、ドロップダウン リスト ボックス、およびコンボ ボックスは、一覧の項目を追加したり削除したりできることから、より広範囲です。また、一覧から選択した項目の値を見ることによって、実行される操作を判断できます。コントロールの操作を組み込み関数またはカスタム関数に変更することができます。

次の表は、コントロールの最も一般的なプロパティ、およびコントロールの状態、操作、または内容を変更するためのメソッドを示したものです。
プロパティまたはメソッド目的
Addコマンド バーにコマンドを追加します。
AddItemドロップダウン リスト ボックスまたはコンボ ボックスのドロップダウン リスト部分に項目を追加します。
Styleボタンのグラフィックにアイコンを表示するかキャプションを表示するかを指定します。
OnActionコントロールの値が変更されたときに実行する操作を指定します。
Visibleコントロールを表示するか表示しないかを指定します。

Excel 2003 および Excel 2002 のメニューの詳細を参照するには、次の手順を実行します。
  1. Visual Basic Script Editor を起動します。
  2. [ヘルプ] メニューの [Microsoft Visual Basic ヘルプ] をクリックします。
  3. [ヘルプの検索] ボックスにメニューと入力し、Enter キーを押します。
  4. [メニュー バーおよびメニュー項目の追加と変更 (Office)] をクリックします。

先頭に戻る

メニュー コントロールに区分線を追加する

次のサンプル コードは、[挿入] メニューの [ワークシート] コマンドの前に区分線を追加します。
Sub menuItem_AddSeparator()   CommandBars("Worksheet menu bar").Controls("挿入(&I)") _   .Controls("ワークシート(&W)").BeginGroup = TrueEnd Sub
: 区分線を削除するには、BeginGroup プロパティを False に設定します。

先頭に戻る

メニューにカスタム コマンド コントロールを作成する

次のサンプル コードは、ワークシート メニュー バーの [ツール] メニューに [Custom1] という名前の新しいコマンドを作成し、次に、[Custom1] がクリックされたときに Code_Custom1 マクロを実行します。
Sub menuItem_Create()   With CommandBars("Worksheet menu bar").Controls("ツール(&T)")      .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Custom1"      .Controls("Custom1").OnAction = "Code_Custom1"   End WithEnd Sub

先頭に戻る

コマンド コントロールの横にチェック マークを表示する

次のサンプル コードは、[Custom1] コマンドが選択されていない場合はその横にチェック マークを表示し、次に、[Custom1] コマンドが選択されている場合はチェック マークを削除します。
Sub menuItem_checkMark()Dim myPopup as Object   Set myPopup = CommandBars("Worksheet menu bar").Controls("ツール(&T)")   If myPopup.Controls("Custom1").State = msoButtonDown Then      ' Remove check mark next to menu item.      myPopup.Controls("Custom1").State = msoButtonUp      MsgBox "Custom1 is now unchecked"      Else        ' Add check mark next to menu item.         myPopup.Controls("Custom1").State = msoButtonDown         MsgBox "Custom1 is now checked"    End IfEnd Sub

先頭に戻る

コマンド バーのコマンド コントロールを無効にする

次のサンプル コードは、「メニューにカスタム コマンド コントロールを作成する」で [ツール] メニューに作成した [Custom1] コマンドを無効にします。
Sub MenuItem_Disable()Dim myCmd as Object   Set myCmd = CommandBars("Worksheet menu bar").Controls("ツール(&T)")   myCmd.Controls("Custom1").Enabled = FalseEnd Sub

先頭に戻る

コマンド バーのコマンド コントロールを有効にする

次のサンプル コードは、「コマンド バーのコマンド コントロールを無効にする」で無効にした [Custom1] コマンドを有効にします。
Sub MenuItem_Enable()Dim myCmd as Object   Set myCmd = CommandBars("Worksheet menu bar").Controls("ツール(&T)")   myCmd.Controls("Custom1").Enabled = TrueEnd Sub

先頭に戻る

メニューのコマンド コントロールを削除する

次のサンプル コードは、[ファイル] メニューの [上書き保存] コマンドを削除します。
Sub menuItem_Delete()Dim myCmd As Object   Set myCmd = CommandBars("Worksheet menu bar").Controls("ファイル(&F)")   myCmd.Controls("上書き保存(&S)").DeleteEnd Sub

先頭に戻る

メニューの組み込みのコマンド コントロールを復元する

メニューのコマンド コントロールを復元するには、コントロールの ID 番号が必要です。ID 番号を確認するには、「コマンド バー コントロールの ID を返す」を参照してください。次の例は、「メニューのコマンド コントロールを削除する」で削除した [上書き保存] コマンドを削除してから復元します。
Sub menuItem_Restore()Dim myCmd As Object   Set myCmd = CommandBars("Worksheet menu bar").Controls("ファイル(&F)")   ' Id 3 refers to the Save menu item control.   myCmd.Controls.Add Type:=msoControlButton, ID:=3, Before:=5End Sub

先頭に戻る

サブメニュー

サブメニューは、コマンドをクリックしたときに親メニューの横に表示されます。サブメニュー コントロールであるコマンドには、コマンド名の右端に小さな黒い矢印が表示されます。

先頭に戻る

サブメニューを追加する

次のサンプル コードは、[NewSub] という名前の新しいサブメニューを、ワークシート メニュー バーの [ツール] メニューに追加します。
Sub SubMenu_Create()Dim newSub as Object   Set newSub = CommandBars("Worksheet menu bar").Controls("ツール(&T)")   With newSub      .Controls.Add(Type:=msoControlPopup, Before:=1).Caption="NewSub"   End WithEnd Sub

先頭に戻る

サブメニューにコマンドを追加する

次のサンプル コードは、[SubItem1] という名前の新しいコマンドを [NewSub] サブメニューに追加し、次に、[SubItem1] がクリックされたときに Code_SubItem1 マクロを実行します。
Sub SubMenu_AddItem()Dim newSubItem as Object   Set newSubItem = CommandBars("Worksheet menu bar") _   .Controls("ツール(&T)").Controls("NewSub")   With newSubItem      .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "SubItem1"      .Controls("SubItem1").OnAction = "Code_SubItem1"   End WithEnd Sub

先頭に戻る

サブメニューのコマンド コントロールを無効にする

次のサンプル コードは、「サブメニューにコマンドを追加する」で作成した [SubItem] コマンドを無効にします。
Sub SubMenu_DisableItem()   CommandBars("Worksheet menu bar").Controls("ツール(&T)") _   .Controls("NewSub").Controls("SubItem1").Enabled = FalseEnd Sub


次の例は、同じ [SubItem] コマンドを有効にします。
Sub SubMenu_DisableItem()   CommandBars("Worksheet menu bar").Controls("ツール(&T)") _   .Controls("NewSub").Controls("SubItem1").Enabled = TrueEnd Sub

先頭に戻る

サブメニューのコマンドを削除する

次の例は、「サブメニューにコマンドを追加する」で [NewSub] サブメニューに追加した [SubItem1] コマンドを削除します。
Sub SubMenu_DeleteItem()   CommandBars("Worksheet menu bar").Controls("ツール(&T)") _   .Controls("NewSub").Controls("SubItem1").DeleteEnd Sub

先頭に戻る

サブメニュー コントロールを無効にする

次のサンプル コードは、「サブメニューを追加する」で [ツール] メニューに追加した [NewSub] サブメニューを無効にします。
Sub SubMenu_DisableSub()   CommandBars("Worksheet menu bar").Controls("ツール(&T)") _   .Controls("NewSub").Enabled = FalseEnd Sub
: 無効になっているコントロールを有効にするには、Enabled プロパティを True に設定します。

先頭に戻る

サブメニュー コントロールを削除する

次のサンプル コードは、「サブメニューを追加する」で [ツール] メニューに追加した [NewSub] サブメニューを削除します。
Sub SubMenu_DeleteSub()   CommandBars("Worksheet menu bar").Controls("ツール(&T)") _   .Controls("NewSub").DeleteEnd Sub

先頭に戻る

ショートカット メニュー バー

ショートカット メニューは、オブジェクトを右クリックしたときに表示されるフローティング コマンド バーです。ショートカット メニュー バーには、コマンド バーと同じ種類のコントロールを表示することができ、コントロールの動作はコマンド バーのコントロールの動作と同じです。ほとんどのプログラムで、プログラムのインターフェイスからショートカット メニューを作成したり変更したりすることはできません。そのため、ショートカット メニューは実行時に作成および変更する必要があります。

Excel 2002 および Excel 2003 のショートカット メニューの詳細を参照するには、次の手順を実行します。
  1. Visual Basic Script Editor を起動します。
  2. [ヘルプ] メニューの [Microsoft Visual Basic ヘルプ] をクリックします。
  3. [ヘルプの検索] ボックスにショートカットと入力し、Enter キーを押します。
  4. [ショートカット メニューの追加と削除] をクリックします。
先頭に戻る

新しいショートカット メニュー バーを作成する

次のサンプル コードは、[myShortcutBar] という名前の新しいショートカット メニュー バーを作成します。
Sub Shortcut_Create()Dim myShtCtBar as Object   Set myShtCtBar = CommandBars.Add(Name:="myShortcutBar", _   Position:=msoBarPopup)   ‘ This displays the shortcut menu bar.   ‘ 200, 200 refers to the screen position in pixels as x and y coordinates.   myShtCtBar.ShowPopup 200,200End Sub
: コントロール (メニュー項目またはサブメニュー) がまだ追加されていないため、空のショートカット メニュー バーが表示されます。

先頭に戻る

ショートカット メニュー

ショートカット メニュー バーは、特定の Excel オブジェクトを右クリックしたときに表示されます。Excel には、さまざまなメニューを利用できる多くのショートカット メニュー バーがあります。また、カスタム ショートカット メニュー バーを作成したり、組み込みのメニュー バーをカスタマイズしたりできます。

先頭に戻る

ショートカット メニュー バーにコマンドを作成する

次のサンプル コードは、[Item1] という名前の新しいメニュー コマンドを [myShortcutBar] ショートカット メニュー バーに作成し、次に、[Item1] がクリックされたときに Code_Item1 マクロを実行します。
Sub Shortcut_AddItem()Dim myBar as Object   Set myBar = CommandBars("myShortcutBar")   With myBar      .Controls.Add (Type:=msoControlButton, before:=1).Caption = "Item1"      .Controls("Item1").OnAction = "Code_Item1"   End With   myBar.ShowPopup 200,200End Sub

先頭に戻る

ショートカット メニュー バーのコマンド コントロールを無効にする

次のサンプル コードは、「ショートカット メニュー バーにコマンドを作成する」で作成した [Item1] コマンドを無効にします。
Sub Shortcut_DisableItem()   Set myBar = CommandBars("myShortcutBar")   myBar.Controls("Item1").Enabled = False   myBar.ShowPopup 200,200End Sub
: 無効になっている項目を有効にするには、Enabled プロパティを True に設定します。

先頭に戻る

ショートカット メニュー バーのコマンドを削除する

次のサンプル コードは、[myShortcutBar] ショートカット メニュー バーの [Item1] という名前のメニュー コマンドを削除します。
Sub Shortcut_DeleteItem()   Set myBar = CommandBars("myShortcutBar")   myBar.Controls("Item1").Delete   myBar.ShowPopup 200,200End Sub

先頭に戻る

ショートカット メニュー バーを削除する

ショートカット メニュー バーを削除すると、すべての項目が削除されます。削除されたカスタム メニュー バーは復元できません。復元するには、カスタム メニュー バー、およびすべてのメニュー項目とサブメニューを再作成する必要があります。

次のサンプル コードは、「ショートカット メニュー バーにコマンドを作成する」で作成した [myShortCutBar] ショートカット メニュー バーを削除します。
Sub Shortcut_DeleteShortCutBar()   CommandBars("MyShortCutBar").DeleteEnd Sub

先頭に戻る

組み込みのショートカット メニュー バーにコマンドを復元する

次のサンプル コードは、ワークシートの [Cell] ショートカット メニュー バーにデフォルトのコマンドを復元します。
Sub Shortcut_RestoreItem()   CommandBars("Cell").ResetEnd Sub

先頭に戻る

ショートカット メニューのサブメニュー

ショートカット メニュー バーにサブメニューを作成できます。サブメニューは、コマンド コントロールをクリックしたときに親メニューの横に表示されます。サブメニュー コントロールであるコマンドには、その名前の右側に小さな黒い矢印が表示されます。

先頭に戻る

ショートカット メニュー バーに新しいサブメニューを作成する

次の例は、[NewSub] という名前の新しいサブメニューを、ワークシートの [Cell] ショートカット メニューに追加します。
Sub ShortcutSub_Create()   CommandBars("Cell").Controls.Add(Type:=msoControlPopup, before:=1) _   .Caption = "NewSub"    ' This displays the shortcut menu bar.    ' 200, 200 refers to the screen position in pixels as x and y coordinates.   CommandBars("Cell").ShowPopup 200, 200End Sub
: まだメニュー項目が追加されていないため、サブメニューは空です。

先頭に戻る

ショートカット メニュー バーのサブメニューにコマンド コントロールを作成する

次のマクロは、[Cell] ショートカット メニューに作成した [NewSub] サブメニューに [SubItem1] コマンドを追加し、次に、[SubItem1] がクリックされたときに Code_SubItem1 マクロを実行します。
Sub ShortcutSub_AddItem()Dim newSubItem as Object   Set newSubItem = CommandBars("Cell").Controls("NewSub”)   With newSubItem      .Controls.Add(Type:=msoControlButton, before:=1).Caption = "subItem1"      ' This will run the subItem1_Code macro when subItem1 is clicked.      .Controls("subItem1").OnAction = "Code_subItem1"   End With   ' This displays the Cell shortcut menu bar.   ' 200, 200 refers to the screen position in pixels as x and y coordinates   CommandBars("Cell").ShowPopup 200, 200End Sub

先頭に戻る

ショートカット メニューのサブメニュー項目コントロールを無効にする

次のサンプル コードは、[NewSub] サブメニューの [SubItem1] コマンドを無効にします。
Sub ShortcutSub_DisableItem()   CommandBars("Cell").Controls("NewSub") _   .Controls("subItem1").Enabled = False   ' This displays the Cell shortcut menu bar.   ' 200, 200 refers to the screen position in pixels as x and y coordinates.   CommandBars("Cell").ShowPopup 200, 200End Sub
: 無効になっている項目を有効にするには、Enabled プロパティを True に設定します。

先頭に戻る

ショートカット メニューのサブメニュー項目コントロールを削除する

次の例は、[NewSub] サブメニューの [SubItem1] コマンドを削除します。
Sub ShortcutSub_DeleteItem()   CommandBars("Cell").Controls("NewSub").Controls("subItem1").Delete   ' This displays the Cell shortcut menu bar.   ' 200, 200 refers to the screen position in pixels as x and y coordinates.   CommandBars("Cell").ShowPopup 200, 200End Sub

先頭に戻る

ショートカット メニューのサブメニュー コントロールを無効にする

次のサンプル コードは、[Cell] ショートカット メニュー バーの [NewSub] サブメニューを無効にします。
Sub ShortcutSub_DisableSub()   CommandBars("Cell").Controls("NewSub").Enabled = False   ' This displays the Cell shortcut menu bar.   ' 200, 200 refers to the screen position in pixels as x and y coordinates.   CommandBars("Cell").ShowPopup 200, 200End Sub
: 無効になっている項目を有効にするには、Enabled プロパティを True に設定します。

先頭に戻る

ショートカット メニューのサブメニュー コントロールを削除する

次のサンプル コードは、[Cell] ショートカット メニュー バーに作成した [NewSub] サブメニューを削除します。
Sub ShortcutSub_DeleteSub()   CommandBars("Cell").Controls("NewSub").Delete   ' This displays the Cell shortcut menu bar.   ' 200, 200 refers to the screen position in pixels as x and y coordinates.   CommandBars("Cell").ShowPopup 200, 200End Sub

先頭に戻る

関連情報

Excel のメニューおよびメニュー バーをカスタマイズする方法については、以下のリソースを利用できます。

先頭に戻る

オブジェクト ブラウザ

オブジェクト ブラウザには、特定のコマンドに対するすべてのプロパティとすべてのメソッドの一覧が含まれています。この情報を参照するには、Visual Basic Editor に切り替え (Alt + F11 キーを押します)、[表示] メニューの [オブジェクト ブラウザ] をクリックして (または F2 キーを押します)、[検索] ボックスにコントロールの名前を入力します。次に、Enter キーを押すか [検索] をクリックします。

先頭に戻る

「サポート技術情報」 (Microsoft Knowledge Base)

「サポート技術情報」 (Microsoft Knowledge Base) は、Microsoft Product Support Services のサポート技術者のための主要なマイクロソフト製品情報ソースです。「サポート技術情報」 (Microsoft Knowledge Base) はユーザーも使用できます。この包括的なデータベースには、マイクロソフト製品についての技術情報の詳細な資料、文書化されている修正プログラムの一覧、マニュアルの誤り、および技術的サポートに関してよく寄せられる質問に対する回答が含まれています。

「サポート技術情報」 (Microsoft Knowledge Base) に接続するには、次のマイクロソフト Web サイトにアクセスし、表示される指示に従います。先頭に戻る
プロパティ

文書番号:830502 - 最終更新日: 12/19/2005 08:19:00 - リビジョン: 4.0

  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • kbhowtomaster KB830502
フィードバック