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

文書翻訳 文書翻訳
文書番号: 830502 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、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 では、[メニューおよびツール バーについて] をクリックします。
メニュー バーとそのメニュー バーのコントロールは両方とも、実行時に変更できます。メニュー バーを変更すると、メニュー バーの外観や位置が影響を受けることがあります。コントロールの変更は、コントロールの種類に依存します。次の表は、コントロールの状態、操作、または内容を変更するための最も一般的なプロパティおよび一般的なメソッドを示したものです。
元に戻す全体を表示する
プロパティまたはメソッド 目的
Add CommandBars オブジェクト コレクションの Add メソッドを使用し、Menubar 引数に TRUE を指定して、メニュー バーを追加します。
Enabled Enabled プロパティが 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.Id
End Sub

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

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

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

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

Sub MenuBars_Capture()
   Set OriginalMenuBar = CommandBars.ActiveMenuBar
End 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:=True
End 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 = True
End Sub

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

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

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

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

コマンド バーを表示する

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

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

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

メニュー

メニュー バーを復元すると、(メニューとメニュー項目の両方の) デフォルトのコントロールがリセットされます。次のサンプル コードは、組み込みの Chart メニュー バーを復元します。

Sub MenuBar_Restore()
   CommandBars("Chart").Reset
End 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 With
End Sub

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

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

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

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

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

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

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

次のサンプル コードは、組み込みの [Chart] メニュー バーをワークシート メニュー バーに復元します。
Sub Menu_Restore()
Dim myMnu As Object
   Set myMnu = CommandBars("Chart")
   myMnu.Reset
End 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 = True
End 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 With
End 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 If
End Sub

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

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

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

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

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

次のサンプル コードは、[ファイル] メニューの [上書き保存] コマンドを削除します。
Sub menuItem_Delete()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("ファイル(&F)")
   myCmd.Controls("上書き保存(&S)").Delete
End 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:=5
End 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 With
End 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 With
End Sub

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

次のサンプル コードは、「サブメニューにコマンドを追加する」で作成した [SubItem] コマンドを無効にします。

Sub SubMenu_DisableItem()
   CommandBars("Worksheet menu bar").Controls("ツール(&T)") _
   .Controls("NewSub").Controls("SubItem1").Enabled = False
End Sub


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

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

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

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

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

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

次のサンプル コードは、「サブメニューを追加する」で [ツール] メニューに追加した [NewSub] サブメニューを削除します。
Sub SubMenu_DeleteSub()
   CommandBars("Worksheet menu bar").Controls("ツール(&T)") _
   .Controls("NewSub").Delete
End 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,200
End 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,200
End Sub

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

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

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

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

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

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

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

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

次のサンプル コードは、ワークシートの [Cell] ショートカット メニュー バーにデフォルトのコマンドを復元します。
Sub Shortcut_RestoreItem()
   CommandBars("Cell").Reset
End 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, 200
End 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, 200
End 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, 200
End 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, 200
End 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, 200
End 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, 200
End 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 サイトにアクセスし、表示される指示に従います。
http://support.microsoft.com

プロパティ

文書番号: 830502 - 最終更新日: 2005年12月19日 - リビジョン: 4.0
この資料は以下の製品について記述したものです。
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
キーワード:?
kbhowtomaster KB830502
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com