Cómo personalizar los menús y barras de menús de Excel

Seleccione idioma Seleccione idioma
Id. de artículo: 830502 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

en este artículo describe cómo personalizar menús y barras de menú en Microsoft Excel 2000 y versiones posteriores. Este artículo contiene instrucciones paso a paso y ejemplos de código para administrar mediante programación y personalizar las barras de menús, menús, comandos, submenús y menús contextuales en Microsoft Excel.

INTRODUCCIÓN

Para realizar muchas de las tareas comunes que están asociadas a personalizar las barras de menús y menús en Microsoft Excel 2000, en Microsoft Excel 2002 y en Microsoft Office Excel 2003, utilice el Personalizar cuadro de diálogo. Para realizar más tareas avanzadas, o para ajustar las barras de menús y menús de un programa personalizado, puede desea crear Microsoft Visual Basic para aplicaciones (VBA) códigos.

Para obtener más información acerca de cómo utilizar el cuadro de diálogo Personalizar, haga clic en Ayuda de Microsoft Excel en el menú Ayuda , escriba Personalizar barra de menús en el Ayudante de Office o el Asistente para Ayuda y, a continuación, haga clic en Buscar para ver el tema.

En este artículo puede ayudarle a aprender técnicas para escribir código VBA para personalizar las barras de menús, menús, elementos de menú, submenús y menús contextuales.

Más información

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos.

Ejemplos de este artículo

Los ejemplos de este artículo utilizan código VBA en Excel 2000, Excel 2002 y Excel 2003 para personalizar menús. Para utilizar las macros de ejemplo, siga estos pasos:
  1. Inicie Excel.
  2. En el menú Herramientas , elija macro y, a continuación, haga clic en Editor de Visual Basic .
  3. En el menú Insertar , haga clic en módulo .
  4. Escriba uno de los ejemplos de macro de este artículo, o puede utilizar una operación de copiar y pegar para copiar los ejemplos de macro a una hoja de módulo.
  5. En el menú Ejecutar , haga clic en Ejecutar Sub/User Form .
  6. Si aparece el cuadro de diálogo macro , haga clic en el nombre de la macro y, a continuación, haga clic en Ejecutar .

Barras de comandos

En Microsoft Office, las barras de herramientas, barras de menús y contextual los menús están controlados mediante programación como un tipo de objeto: barras de comandos. Los siguientes elementos están representados en VBA por objetos CommandBar :
  • Las barras de menús, barras de herramientas y menús contextuales.
  • Menús en barras de menús y barras de herramientas.
  • Submenús en menús, submenús y menús contextuales.
Puede modificar cualquier barra de menús integrada o cualquier barra de herramientas integrada, y puede crear y modificar barras de herramientas personalizadas, barras de menús y menús contextuales para entregar con el código de VBA. Las funciones del programa se presentan como botones individuales en las barras de herramientas o como grupos de nombres de comando en los menús. Debido a las barras de herramientas y menús son ambos barras de comandos, se utiliza el mismo tipo de controles.

En VBA y en Visual Basic, los botones y elementos de menú se representan mediante objetos CommandBarButton . Los controles emergentes que muestran menús y submenús están representados por objetos CommandBarPopup . En los ejemplos siguientes, el control que se denomina "Menú" y el control que se denomina "Submenú" son controles emergentes que muestran un menú y un submenú. Tanto el menú y el submenú son objetos CommandBar únicos con su propio conjunto de controles.

En Microsoft Excel, barras de menús y barras de herramientas se conocen como el mismo tipo de objeto programables, el objeto CommandBar . Utilice los controles del objeto CommandBar para hacer referencia a los menús, elementos de menú, submenús y menús contextuales. Utilice una constante con cada control en el argumento tipo para especificar el tipo de control que desea utilizar para el menú, el submenú o el comando.

Constantes de control

El siguiente es una lista de las constantes de control distintos en Excel 2003 que especifican el tipo de gráfico control a utilizar para un control de barra de menú determinado:
  • 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 **
* = Nuevo en Microsoft Excel 2000
** = Nuevo en Microsoft Excel 2002
*** = Nuevo en Microsoft Office Excel 2003

Barras de menús

Una barra de menús es un tipo de barra de comandos. Una barra de menús es el tipo del objeto donde agregar menús, elementos de menú y submenús.

Para obtener más información acerca de cómo administrar las barras de menús y elementos de menú en Excel, siga estos pasos:
  1. Inicie el Editor de Visual Basic de Microsoft.
  2. En el menú Ayuda , haga clic en Ayuda de Microsoft Visual Basic .
  3. En el cuadro de Ayudante de Office o en el cuadro Asistente para Ayuda , escriba las barras de menú y a continuación, haga clic en Buscar .
  4. En Excel 2003 y en Excel 2002, haga clic en Agregar y manejar barras y elementos de menú . En Excel 2000, haga clic en menús y barras de herramientas .
Puede realizar modificaciones a ambos la barra de menús y a los controles de esa barra de menú en tiempo de ejecución. Los cambios que realice en la barra de menús pueden afectar a la apariencia o la posición de la barra de menús. Los cambios realizados a los controles dependen del tipo de control. La tabla siguiente enumera las propiedades más comunes y los métodos comunes para cambiar el estado, la acción o el contenido de un control:
Contraer esta tablaAmpliar esta tabla
Propiedad o métodoPropósito
Agregar Agrega una barra de menús mediante el método Add de la colección de objeto CommandBars y especificando el valor de verdadero para el argumento de la barra de menús .
habilitado Si la propiedad Enabled se establece en el valor TRUE, el usuario puede mostrar la barra de menús especificado mediante código de Visual Basic. Si la propiedad Enabled se establece en el valor FALSE, el usuario no puede hacer la barra de menús visible. Sin embargo, la barra de menús aparecerá en la lista de barras disponibles.
protección Permite proteger la barra de menús de acciones específicas del usuario.
posición Especifica la posición de la nueva barra de menú con relación a la ventana del programa. La posición de la barra de menús con respecto a la ventana del programa puede ser una de las siguientes propiedades de constantes de MsoBarPosition : msoBarLeft , msoBarTop , msoBarRight , msoBarBottom , msoBarFloating , msoBarPopup (utilizada para crear menús contextuales) o msoBarMenuBar (sólo para uso con Apple Macintosh).
visible Especifica si el control está visible o está oculto.

Devolver un identificador para un control de barra de comandos

En el ejemplo de código siguiente devuelve el identificador de la barra de menús activa:
Sub Id_Control ()
Dim myId as Object
   set myId = CommandBars("Worksheet Menu Bar").Controls("Tools")
   MsgBox myId.Caption & Chr(13) & MyId.Id
End Sub

Determinar el nombre de la barra de menús activa

El código de ejemplo siguiente devuelve el nombre de la barra de menús activa:
Sub MenuBars_GetName()
   MsgBox CommandBars.ActiveMenuBar.Name
End Sub

Guardar el estado activo (para integrado o de barras de menú personalizado)

Quizás desee declarar la variable de OriginalMenuBar una variable pública para que una subrutina puede utilizarlo en otro subrutina, como una subrutina Auto_Close. Declarar y utilizar la variable de esta forma restablece la barra de menús anterior del usuario a su estado original. La siguiente macro de ejemplo restablece la barra de menús:
Public OriginalMenuBar as Object

Sub MenuBars_Capture()
   Set OriginalMenuBar = CommandBars.ActiveMenuBar
End Sub

Crear una barra de comandos personalizada

En el ejemplo de código siguiente se crea una barra de comandos personalizada que se denomina Mi barra de comandos :
Sub MenuBar_Create() Application.CommandBars.Add Name:="My command bar" End Sub

También puede crear una barra de comandos personalizado utilizando el Temporary: = True argumento. El Temporary: = True argumento permite que las barras de comandos se restablecen automáticamente cuando salga de Excel. El código siguiente utiliza la temporales: = True argumento para crear una barra de comandos personalizadas:
Sub MenuBar_Create()
Application.CommandBars.Add Name:="My command bar", Temporary:=True
End Sub

Mostrar una barra de comandos personalizada

En el ejemplo siguiente se crea y muestra una barra de menús personalizada Mi barra personalizada y, a continuación, reemplaza la barra de menús integrada:
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

Eliminar una barra de comandos personalizadas

El código de ejemplo siguiente elimina la barra de menús personalizada que se denomina 1 personalizado :
Sub MenuBar_Delete()
   CommandBars("Custom1").Delete
End Sub

Ocultar una barra de comandos

En el ejemplo de código siguiente quita la barra de menú de gráfico integrada de la lista de barras de menú disponibles:
Sub MenuBar_Display()
   CommandBars("Chart").Enabled = False
End Sub

Mostrar una barra de comandos

En el ejemplo de código siguiente se agrega la barra de menú de gráfico integrada de la lista de barras de menú disponibles:
Sub MenuBar_Display()
   CommandBars("Chart").Enabled = True
End Sub

Restaurar una barra de comandos integrada

Restaurar una barra de menús restablece los controles predeterminados (para menús y elementos de menú). En el ejemplo de código siguiente se restaura la barra de menú de gráfico integrada:
Sub MenuBar_Restore()
   CommandBars("Chart").Reset
End Sub
Nota Sólo se pueden restablecer barras de menús integrada. No puede restablecer una barra de menús personalizada.

Menús

Restaurar una barra de menús restablece los controles predeterminados (para menús y elementos de menú). En el ejemplo de código siguiente se restaura la barra de menú de gráfico integrada:

Sub MenuBar_Restore()
   CommandBars("Chart").Reset
End Sub
Nota sólo se pueden restablecer barras de menús integrada. No puede restablecer una barra de menús personalizada.

Agregar un control de menú personalizado a una barra de comandos

En el ejemplo de código siguiente agrega el nombre de un menú que agregue mediante programación a la barra de menú de una hoja de cálculo . Por ejemplo, este código agrega el menú nombre Nuevo menú a la la barra de menú de la hoja .

Nota Puede dar cualquier nombre que desee a este menú.
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

Deshabilitar un control de menú de una barra de comandos

Un control de menú que está deshabilitado aparece atenuado y no está disponible en una barra de comandos. El ejemplo siguiente desactiva el menú nuevo :
Sub Menu_Disable()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = False
End Sub

Habilitar un control de menú de una barra de comandos

En el ejemplo de código siguiente se habilita el menú nuevo deshabilitado en la sección "Deshabilitar un control de menú de una barra de comandos" :
Sub Menu_Disable()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = True
End Sub

Eliminar un control de menú de una barra de comandos

El ejemplo de código siguiente elimina el Nuevo menú menú que creó en la sección "Agregar un control de menú personalizado a una barra de comandos" de la barra de menú de una hoja de cálculo :
Sub Menu_Delete()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Delete
End Sub

Restaurar un control de menú de una barra de comandos

En el ejemplo de código siguiente se restaura la barra de menú de gráfico integrada en la barra de menús de hoja de cálculo :
Sub Menu_Restore()
Dim myMnu As Object
   Set myMnu = CommandBars("Chart")
   myMnu.Reset
End Sub

Comandos

El intervalo de las modificaciones que puede realizar a un comando depende del tipo de control. Generalmente, los botones o están habilitados o están ocultos. Cuadros de edición, cuadros de lista desplegable y combinados son más versátiles cuadros en que se puede agregar o eliminar elementos de la lista. Además, puede determinar la acción que se realiza examinando el valor de los elementos que seleccionó en la lista. Puede cambiar la acción de cualquier control a una función integrada o a una función personalizada.

En la tabla siguiente se enumeran las propiedades más comunes de un control y los métodos para cambiar el estado, la acción o el contenido de un control:
Contraer esta tablaAmpliar esta tabla
Propiedad o métodoPropósito
Agregar Agrega un comando a una barra de comandos.
AddItem Agrega un elemento a la parte de lista desplegable de un cuadro de lista desplegable o de un cuadro combinado.
estilo Especifica si la imagen del botón muestra un icono o un título.
OnAction Especifica el procedimiento para ejecutar cuando el usuario cambia el valor del control.
visible Especifica si el control está visible o está oculto.

Para obtener más información acerca de menús en Excel 2003 y en Excel 2002, siga estos pasos:
  1. Inicie el Editor de secuencias de comandos de Visual Basic.
  2. En el menú Ayuda , haga clic en Ayuda de Microsoft Visual Basic .
  3. En el cuadro Buscar en Ayuda, escriba los menús y, a continuación, presione ENTRAR.
  4. Haga clic en Agregar y administrar barras y elementos de menú (Office) .

Agregar una barra separadora a un control de menú

El código de ejemplo siguiente agrega una barra separadora antes del comando hoja en el menú Insertar :
Sub menuItem_AddSeparator()
   CommandBars("Worksheet menu bar").Controls("Insert") _
   .Controls("Worksheet").BeginGroup = True
End Sub
Nota Para quitar una barra separadora, establezca la propiedad BeginGroup en false .

Crear un control comando personalizado en un menú

El código de ejemplo siguiente crea un nuevo comando que se denomina especial en el menú Herramientas de la barra de menú de una hoja de cálculo y, a continuación, ejecuta la macro de Code_Custom1 al hacer clic en especial :
Sub menuItem_Create()
   With CommandBars("Worksheet menu bar").Controls("Tools")
      .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Custom1"
      .Controls("Custom1").OnAction = "Code_Custom1"
   End With
End Sub

Ponga una marca de verificación junto a un control de comandos

En el ejemplo de código siguiente coloca una marca de verificación junto al comando especial si no está seleccionada y, a continuación, quita la marca de verificación si se selecciona el comando especial :
Sub menuItem_checkMark()
Dim myPopup as Object

   Set myPopup = CommandBars("Worksheet menu bar").Controls("Tools")
   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

Deshabilitar un control de comandos de una barra de comandos

En el ejemplo de código siguiente se deshabilita el comando especial que creó en el menú Herramientas en la sección "Crear un control de comando personalizado en un menú":
Sub MenuItem_Disable()
Dim myCmd as Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
   myCmd.Controls("Custom1").Enabled = False
End Sub

Habilitar un control de comandos de una barra de comandos

En el ejemplo de código siguiente se habilita el comando especial que deshabilitó en la sección "Deshabilitar un control de comandos de una barra de comandos":
Sub MenuItem_Enable()
Dim myCmd as Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
   myCmd.Controls("Custom1").Enabled = True
End Sub

Eliminar un control de comandos en un menú

El siguiente ejemplo de código borra Guardar el comando en el menú archivo :
Sub menuItem_Delete()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
   myCmd.Controls("Save").Delete
End Sub

Restaurar un control de comandos integrada en un menú

Para restaurar un control de comandos en un menú, debe conocer el número de identificación (ID.) para el control. Para determinar el número de identificación, consulte la sección "Volver a un identificador para un control de barra de comandos". El siguiente ejemplo se elimina y, a continuación, restaura el comando Guardar que eliminó en la sección "Eliminar un control de comandos en un menú":
Sub menuItem_Restore()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
   ' Id 3 refers to the Save menu item control.
   myCmd.Controls.Add Type:=msoControlButton, ID:=3, Before:=5
End Sub

Submenús

Submenús aparecen al lado de los menús primarios cuando haga clic en un comando. Un comando que es un control submenú tiene una pequeña flecha negra que se encuentra en el extremo derecho del nombre de comando.

Agregar un submenú

El código de ejemplo siguiente agrega un nuevo submenú que se denominen NewSub en el menú Herramientas en la barra de menú de una hoja de cálculo :
Sub SubMenu_Create()
Dim newSub as Object
   Set newSub = CommandBars("Worksheet menu bar").Controls("Tools")
   With newSub
      .Controls.Add(Type:=msoControlPopup, Before:=1).Caption="NewSub"
   End With
End Sub

Agregar un comando a un submenú

En el ejemplo de código siguiente agrega un comando nuevo que se denomina SubItem1 al submenú NewSub y, a continuación, se ejecuta la macro Code_SubItem1 al hacer clic en SubItem1 :
Sub SubMenu_AddItem()
Dim newSubItem as Object
   Set newSubItem = CommandBars("Worksheet menu bar") _
   .Controls("Tools").Controls("NewSub")
   With newSubItem
      .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "SubItem1"
      .Controls("SubItem1").OnAction = "Code_SubItem1"
   End With
End Sub

Deshabilitar un control de comandos de un submenú

En el ejemplo de código siguiente se deshabilita el mismo comando de subelemento que creó en la sección "Agregar un comando a un submenú":

Sub SubMenu_DisableItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Enabled = False
End Sub


El ejemplo siguiente permite el mismo comando subelemento:
Sub SubMenu_DisableItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Enabled = True
End Sub

Eliminar un comando de un submenú

En el ejemplo siguiente, se elimina el comando de SubItem1 que creó en el submenú NewSub en la sección "Agregar un comando a un submenú":
Sub SubMenu_DeleteItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Delete
End Sub

Deshabilitar un control de submenú

En el ejemplo de código siguiente deshabilita la NewSub submenú que creó en el menú Herramientas en la sección "Agregar un submenú":
Sub SubMenu_DisableSub()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Enabled = False
End Sub
Nota Para habilitar el control deshabilitado, establezca la propiedad Enabled en true .

Eliminar un control de submenú

El código de ejemplo siguiente elimina el NewSub submenú que creó en el menú Herramientas en la sección "Agregar un submenú":
Sub SubMenu_DeleteSub()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Delete
End Sub

Barras de menú de acceso directo

Un menú contextual es una barra de comandos flotante que aparece cuando el usuario hace clic con el botón secundario en un objeto. Una barra de menú de acceso directo puede contener los mismos tipos de control como una barra de comandos y los controles comportan igual que los controles de una barra de comandos. No puede crear o modificar menús contextuales de la interfaz del programa en la mayoría de los programas. Por lo tanto, debe crear y modificar sus menús contextuales en tiempo de ejecución.

Para obtener más información acerca de los menús contextuales en Excel 2002 y en Excel 2003, siga estos pasos:
  1. Inicie el Editor de secuencias de comandos de Visual Basic.
  2. En el menú Ayuda , haga clic en Ayuda de Microsoft Visual Basic .
  3. En el cuadro Buscar en Ayuda, escriba acceso directo y, a continuación, presione ENTRAR.
  4. Haga clic en Agregar y mostrar contextuales menús .

Crear una nueva barra de menú contextual

El código de ejemplo siguiente crea una barra de menú de acceso directo nuevo que se denomina 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

Nota La barra de menú contextual aparece vacía porque no hay controles (elementos de menú o submenús) se han agregado a ella.

Menús contextuales

Aparecerán barras de menú de acceso directo cuando se utiliza el botón secundario del mouse para hacer clic en un objeto específico de Excel. Excel tiene muchas barras de menú de acceso directo para el que hay disponible una variedad de menús. También puede crear barras de menús contextuales personalizados y personalizar las barras de menús incorporada.

Crear un comando en una barra de menú contextual

En el ejemplo de código siguiente crea un nuevo comando de menú que se denomina artículo 1 en la barra de menú contextual myShortcutBar y se ejecuta la macro Code_Item1 al hacer clic en Elemento1 :
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

Deshabilitar un control de comandos en una barra de menú contextual

En el ejemplo de código siguiente se deshabilita el comando Elemento1 que creó en la sección "Crear un comando en un menú contextual":
Sub Shortcut_DisableItem()
   Set myBar = CommandBars("myShortcutBar")
   myBar.Controls("Item1").Enabled = False
   myBar.ShowPopup 200,200
End Sub
Nota Para habilitar el elemento deshabilitado, establezca la propiedad Enabled en true .

Eliminar un comando en una barra de menú contextual

El código de ejemplo siguiente elimina el comando de menú que se denomina artículo 1 en la barra de menú contextual myShortcutBar :
Sub Shortcut_DeleteItem()
   Set myBar = CommandBars("myShortcutBar")
   myBar.Controls("Item1").Delete
   myBar.ShowPopup 200,200
End Sub

Eliminar una barra de menú contextual

Eliminar la barra de menú contextual quita todos los elementos. No puede restaurar una barra de menú personalizado eliminado. Para restaurarlo, debe volver a crear y todos los elementos de menú y los submenús.

El código de ejemplo siguiente elimina la barra de menú de accesos directos myShortCutBar que creó en la sección "Crear un comando en una barra de menú de acceso directo":
Sub Shortcut_DeleteShortCutBar()
   CommandBars("MyShortCutBar").Delete
End Sub

Restaurar un comando en una barra de menús contextuales integrados

En el ejemplo de código siguiente restaura los comandos predeterminados en la barra de menú contextual de hoja de cálculo celda :
Sub Shortcut_RestoreItem()
   CommandBars("Cell").Reset
End Sub

Submenús en menús contextuales

Puede crear submenús en acceso directo de las barras de menús. Submenús aparecen al lado del menú principal al hacer clic en un control de comandos. Un comando que es un control submenú tiene una flecha pequeña negra que se encuentra a la derecha de su nombre.

Crear un submenú en una barra de menú contextual

El ejemplo siguiente agrega un nuevo submenú que se denomina NewSub en el menú contextual de celda de hoja de cálculo:
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
Nota El submenú está vacío porque no hay elementos de menú se han agregado a ella.

Crear un control de comandos en un submenú que se encuentra en una barra de menú contextual

La siguiente macro agrega el comando SubItem1 al submenú NewSub que creó en el menú contextual de celda y, a continuación, ejecuta la macro de Code_SubItem1 al hacer clic en 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

Deshabilitar un control de elemento de submenú en un menú contextual

En el ejemplo de código siguiente deshabilita el comando SubItem1 en el submenú NewSub :
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
Nota Para habilitar un elemento deshabilitado, establezca la propiedad Enabled en true .

Eliminar un control de elemento de submenú en un menú contextual

En el ejemplo siguiente, se elimina el comando SubItem1 del submenú NewSub :
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

Deshabilitar un control de submenú en un menú contextual

En el ejemplo de código siguiente deshabilita la NewSub submenú en la barra de menú contextual de celda :
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
Nota Para habilitar un elemento deshabilitado, establezca la propiedad Enabled en true .

Eliminar un control de submenú en un menú contextual

El código de ejemplo siguiente elimina el NewSub submenú que ha creado en la barra de menú contextual de celda :
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

Para obtener más información

Los siguientes recursos están disponibles para proporcionar más información acerca de cómo personalizar los menús y barras de menús de Excel.

Examinador de objetos

El Examinador de objetos contiene una lista completa de todas las propiedades y todos los métodos para un comando específico. Para buscar esta información, cambiar para el Editor de Visual Basic (presione ALT+F11), haga clic en Examinador de objetos en el menú Ver (o presione F2), escriba el nombre del control en el cuadro Buscar y, a continuación, presione ENTRAR o haga clic en Buscar .

Microsoft Knowledge Base

Microsoft Knowledge Base es un origen principal de información de producto de Microsoft para profesionales de soporte técnico de soporte técnico de Microsoft. También está disponible en Microsoft Knowledge Base los clientes. Esta base de datos completa contiene artículos detallados con información técnica acerca de los productos de Microsoft, revisión documentada listas, errores de documentación y respuestas a preguntas de soporte técnico más frecuentes.

Para conectarse a Microsoft Knowledge Base, visite el siguiente sitio Web de Microsoft y siga las instrucciones que aparecen en la página:
http://support.microsoft.com

Propiedades

Id. de artículo: 830502 - Última revisión: miércoles, 11 de enero de 2006 - Versión: 4.3
La información de este artículo se refiere a:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
Palabras clave: 
kbmt kbhowtomaster KB830502 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 830502

Enviar comentarios

 

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