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

Resumen

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

EN ESTA TAREA

INTRODUCCIÓN

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

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 menús, barras de menús, elementos de menú, submenús y menús contextuales.

Volver al principio

Más información

Microsoft proporciona ejemplos de programación únicamente con fines ilustrativos, sin ninguna garantía expresa o implícita. Esto incluye, pero no se limita, a las garantías implícitas de comerciabilidad o idoneidad para un propósito particular. Este artículo asume 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 de VBA en Excel 2000, en Excel 2002 y en Excel 2003 para personalizar menús. Para utilizar las macros de ejemplo, siga estos pasos:
  1. Inicie Excel.
  2. En el menú Herramientas , elija
    Macroy, 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.
Volver al principio

Barras de comandos

En Microsoft Office, las barras de herramientas, barras de menús y contextual 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 :
  • Barras de menús, barras de herramientas y menús contextuales.
  • Menús, 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 la barra de herramientas integrada, y puede crear y modificar barras de herramientas personalizadas, barras de menús y menús contextuales para entregarlas con su código VBA. Las funciones del programa se presentan como botones en las barras de herramientas o como grupos de nombres de comandos en los menús. Como las barras de herramientas y los menús son ambos barras de comandos, utilice el mismo tipo de controles.

En VBA y en Microsoft 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 denominado "Menú" y el control denominado "Submenú" son controles emergentes que muestran un menú y un submenú. El menú y el submenú son objetos CommandBar únicos con su propio conjunto de controles.

En Microsoft Excel, las barras de herramientas y barras de menús se conocen como el mismo tipo de objetos 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 de tipo para especificar el tipo de control que desea utilizar para el menú, el submenú o el comando.

Volver al principio

Constantes del control

La siguiente es una lista de las constantes de control distintos en Excel 2003 que especifican el tipo de control gráfico que se 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

Volver al principio

Barras de menús

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

Para obtener más información acerca de cómo administrar barras de menús y elementos de menú de 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 El Ayudante de Office o en el
    Asistente para Ayuda , escriba barras de menúsy, 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 la barra de menús y a los controles de dicha barra 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 que realice a los controles dependen del tipo de control. La tabla siguiente muestra las propiedades más comunes y los métodos comunes para cambiar el estado, la acción o el contenido de un control:
Propiedad o métodoPropósito
AgregarAgrega una barra de menús utilizando el método Add de la colección de objetos CommandBars y especificando el valor TRUE para el argumento Menubar .
HabilitadoSi la propiedad Enabled se establece en el valor TRUE, el usuario puede hacer la barra de menús especificada mediante el código de Visual Basic. Si la propiedad Enabled se establece en el valor FALSE, el usuario no puede mostrar la barra de menús. Sin embargo, la barra de menús aparecerá en la lista de barras de comandos disponibles.
ProtecciónPermite proteger la barra de menús de acciones específicas del usuario.
PosiciónEspecifica la posición de la nueva barra de menú en relación con la ventana del programa. La posición de la barra de menús con relación 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 para (sólo para uso con Apple Macintosh).
VisibleEspecifica si el control es visible o está oculto.

Volver al principio

Devuelve un identificador para un control de barra de comandos

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


Volver al principio

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


Volver al principio

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

Puede que desee declarar la variable OriginalMenuBar una variable pública para que una subrutina puede utilizarse en otra subrutina, como una subrutina Auto_Close. Declaración y uso de la variable de esta manera restablece la barra de menú 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

Volver al principio

Crear una barra de comandos personalizada

El siguiente código de ejemplo 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 personalizada mediante el temporal: = True argumento. El temporal: = True argumento permite las barras de comandos se restablece automáticamente al salir de Excel. El siguiente código utiliza el temporal: = True argumento para crear una barra de comandos personalizada:
Sub MenuBar_Create()Application.CommandBars.Add Name:="My command bar", Temporary:=True
End Sub
Volver al principio

Mostrar una barra de comandos personalizada

En el ejemplo siguiente se crea y muestra una barra de menús personalizada de 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


Volver al principio

Eliminar una barra de comandos personalizada

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


Volver al principio

Ocultar una barra de comandos

El ejemplo de código siguiente quita los integrados
Gráfico de la barra de menús de la lista de barras de menús disponibles:
Sub MenuBar_Display()   CommandBars("Chart").Enabled = False
End Sub

Volver al principio

Mostrar una barra de comandos

El ejemplo de código siguiente agrega los integrados
Gráfico de la barra de menús de la lista de barras de menús disponibles:
Sub MenuBar_Display()   CommandBars("Chart").Enabled = True
End Sub

Volver al principio

Restaurar una barra de comandos integrada

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

Volver al principio

Menús

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

Volver al principio

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

El ejemplo de código siguiente agrega el nombre de un menú que se agrega mediante programación a la barra de menús de la hoja de cálculo . Por ejemplo, este código agrega el menú nombre Nuevo menú a la que la
Barra de menús de la hoja de cálculo .

Nota: Este menú se puede dar cualquier nombre que desee.
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


Volver al principio

Deshabilitar un control de menú en una barra de comandos

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

Volver al principio

Habilitar un control de menú en una barra de comandos

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

Volver al principio

Eliminar un control de menú en una barra de comandos

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


Volver al principio

Restaurar un control de menú en una barra de comandos

El código de ejemplo siguiente restaura los integrados
Gráfico de la barra de menús de la barra de menús de la hoja de cálculo :

Sub Menu_Restore()Dim myMnu As Object
Set myMnu = CommandBars("Chart")
myMnu.Reset
End Sub

Volver al principio

Comandos

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

La tabla siguiente muestra 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:
Propiedad o métodoPropósito
AgregarAgrega un comando a una barra de comandos.
AddItemAgrega un elemento a la parte de lista desplegable de un cuadro de lista desplegable o de un cuadro combinado.
EstiloEspecifica si la cara del botón muestra un icono o un título.
OnActionEspecifica el procedimiento que se ejecutará cuando el usuario cambia el valor del control.
VisibleEspecifica si el control es visible o está oculto.

Para obtener más información acerca de los menús de 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 la Ayuda , escriba
    los menúsy, a continuación, presione ENTRAR.
  4. Haga clic en Agregar y administrar barras de menús y elementos de menú (oficina).

Volver al principio

Agregar una barra separadora a un control de menú

El ejemplo de código siguiente agrega una barra separadora antes del comando de la hoja de cálculo 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.

Volver al principio

Crear un control de comando personalizado en un menú

El ejemplo de código siguiente crea un nuevo comando denominado Custom1 en el menú Herramientas de la
Barra de menús de la hoja de cálculo , y, a continuación, se ejecuta la macro Code_Custom1 al hacer clic en Custom1:
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

Volver al principio

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

El ejemplo de código siguiente coloca una marca de verificación junto al comando Custom1 si no está seleccionada y, a continuación, quita la marca de verificación si se selecciona el comando Custom1 :
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

Volver al principio

Deshabilitar un control de comando en una barra de comandos

El ejemplo de código siguiente deshabilita el comando Custom1 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

Volver al principio

Habilitar un control de comando en una barra de comandos

El ejemplo de código siguiente habilita el comando Custom1 que deshabilitó en la sección "Deshabilitar un control de comando en 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


Volver al principio

Eliminar un control de comando de un menú

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


Volver al principio

Restablecer un control integrado de comando en un menú

Para restaurar un control de comando en un menú, debe conocer el número de identificación (ID) del control. Para determinar el número de identificación, consulte la sección "Devolver un identificador para un control de barra de comandos". En el ejemplo siguiente se elimina y, a continuación, restaura el comando Guardar que eliminó en la sección "Eliminar un control de comando 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

Volver al principio

Submenús

Submenús aparecen al lado del menú principal al hacer 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 del comando.

Volver al principio

Agregar un submenú

El ejemplo de código siguiente agrega un nuevo submenú denominado
NewSub en el menú Herramientas en el
Barra de menús de la 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

Volver al principio

Agregar un comando a un submenú

El ejemplo de código siguiente agrega un nuevo comando denominado
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


Volver al principio

Deshabilitar un control de comando en un submenú

El ejemplo de código siguiente 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


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

Volver al principio

Eliminar un comando de un submenú

En el ejemplo siguiente se elimina el comando 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


Volver al principio

Deshabilitar un control de submenú

El ejemplo de código siguiente deshabilita el submenú NewSub 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.

Volver al principio

Eliminar un control de submenú

El ejemplo de código siguiente elimina el submenú NewSub 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

Volver al principio

Barras de menú de acceso directo

Un menú contextual es una barra de comandos flotante que aparece cuando el usuario seleccione un objeto. Una barra de menús de acceso directo puede contener los mismos tipos de control que una barra de comandos y los controles comportan igual que los controles de una barra de comandos. No se puede crear o modificar menús contextuales desde la interfaz del programa en la mayoría de los programas. Por lo tanto, debe crear y modificar los 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 la Ayuda , escriba
    acceso directoy, a continuación, presione ENTRAR.
  4. Haga clic en Agregar y mostrar menús contextuales.
Volver al principio

Crear una nueva barra de menú contextual

El ejemplo de código siguiente crea una nueva barra de menús de acceso directo 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.

Volver al principio

Menús contextuales

Barras de menú contextual aparecen cuando utiliza el botón secundario del mouse hacer clic en un objeto de Excel específico. Excel tiene muchas barras de menús 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 integrada.

Volver al principio

Crear un comando en una barra de menú contextual

El ejemplo de código siguiente crea un nuevo comando de menú que se denomina Elemento1 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

Volver al principio

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

El ejemplo de código siguiente deshabilita el comando Elemento1 que creó en la sección "Crear un comando de 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.

Volver al principio

Eliminar un comando de una barra de menú contextual

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

Volver al principio

Eliminar una barra de menú contextual

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

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

Volver al principio

Restaurar un comando de una barra de menú contextual integrado

El código de ejemplo 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

Volver al principio

Submenús en menús contextuales

Puede crear submenús en acceso directo a 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 negra que se encuentra a la derecha de su nombre.

Volver al principio

Crear un submenú en una barra de menú contextual

En el ejemplo siguiente se agrega un nuevo submenú denominado
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 se ha agregado ningún elemento de menú.

Volver al principio

Crear un control de comando 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, se ejecuta la macro 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

Volver al principio

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

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.

Volver al principio

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

En el ejemplo siguiente se elimina el comando SubItem1 en el 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


Volver al principio

Deshabilitar un control de submenú en un menú contextual

El ejemplo de código siguiente deshabilita el submenú NewSub 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.

Volver al principio

Eliminar un control de submenú en un menú contextual

El ejemplo de código siguiente elimina el submenú NewSub que creó 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


Volver al principio

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.

Volver al principio

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 encontrar esta información, cambie en 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 de búsqueda y presione ENTRAR o haga clic en
Búsqueda.

Volver al principio

Microsoft Knowledge Base

Microsoft Knowledge Base es una principal fuente de información de producto de Microsoft para profesionales de soporte técnico de Microsoft Product Support Services. Microsoft Knowledge Base también está disponible para los clientes de Microsoft. 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 la Base de conocimientos de Microsoft, visite el siguiente sitio Web de Microsoft y, a continuación, siga las instrucciones que aparecen en la página:Volver al principio
Propiedades

Id. de artículo: 830502 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios