Cómo eliminar mediante programación los comandos de menú control de la ventana de Excel 2002

Seleccione idioma Seleccione idioma
Id. de artículo: 814562 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo
Para obtener una versión de Microsoft Excel 2000 de este artículo, consulte 213502.

Para obtener una versión de Microsoft Excel 97 de este artículo, consulte 107689.

Resumen

Se describe cómo eliminar los comandos del menú control de ventana (botón secundario la barra de título de Excel) y hacer que los botones de control de ventana en la esquina superior derecha de la ventana de Excel no esté disponible mediante programación.

Más información

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita, incluyendo, pero sin limitarse a, las garantías implícitas de comerciabilidad e idoneidad para un propósito determinado. En este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y las herramientas utilizadas para crear y depurar procedimientos. Los profesionales 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 a necesidades específicas.
Si tiene poca experiencia en programación, desea póngase en contacto con un Microsoft Certified Partner o servicios de consultoría de Microsoft. Para obtener más información, visite estos sitios Web de Microsoft:

Microsoft certificado Partners - https://partner.microsoft.com/global/30000104

Servicios de asesoramiento de Microsoft - http://support.microsoft.com/gp/advisoryservice

Para obtener más información acerca de las opciones de soporte técnico que están disponibles y cómo ponerse en contacto con Microsoft, visite el siguiente sitio Web de Microsoft: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Nota In Microsoft Excel 2002, you do not need the FindWindow or GetActiveWindow API statements as in earlier versions of Excel because the Application object has a new Hwnd property.
Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, _
   ByVal bRevert As Integer) As Integer

Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Integer, _
   ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
   
Private Declare Function SetWindowLong Lib "user32" Alias _
   "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
      ByVal dwNewLong As Long) As Long

Private Declare Function GetWindowLong Lib "user32" Alias _
   "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) _
      As Long

Const WS_MINIMIZEBOX = &H20000
Const WS_MAXIMIZEBOX = &H10000
Const GWL_STYLE = (-16)

'The following procedure makes the window control menu unavailable.

Sub Disable_Control()
   
   Dim X As Integer
   
   For X = 1 To 9
      
      'Delete the first menu command and loop until
      'all commands are deleted.
      Call DeleteMenu(GetSystemMenu(Application.hwnd, False), 0, 1024)
   
   Next X

End Sub

'The following procedure restores the control menu.
'Note that to run this procedure, the Declare statements above
'must be in the module.

Sub RestoreSystemMenu()
   
   'restore system menu to original state
   hMenu% = GetSystemMenu(Application.hwnd, 1)

End Sub

'The following procedure makes the Minimize and Maximize commands
'on the window control menu, and the Minimize and Maximize window
'control buttons in the upper-right corner of the Excel window unavailable.

Sub HideMinimizeAndMaximizeButtons()
 
Dim L As Long

   L = GetWindowLong(Application.hwnd, GWL_STYLE)
   L = L And Not (WS_MINIMIZEBOX)
   L = L And Not (WS_MAXIMIZEBOX)
   L = SetWindowLong(Application.hwnd, GWL_STYLE, L)

End Sub

'The following procedure restores the Minimize and Maximize commands on the
'control menu, and the Minimize and Maximize window control buttons
'in the upper-right corner of the Excel window.

Sub RestoreMinimizeAndMaximizeButtons()

   Dim L As Long
   L = GetWindowLong(Application.hwnd, GWL_STYLE)
   L = SetWindowLong(Application.hwnd, GWL_STYLE, WS_MINIMIZEBOX _
      Or WS_MAXIMIZEBOX Or L)

End Sub
se numeran los comandos del menú control, empezando por cero. Los elementos de menú de control predeterminados son: es restaurar el elemento 0, mover es el elemento 1, el tamaño es el elemento 2, minimizar es elemento 3, maximizar es el elemento 4 y es cerrar el elemento. Incluso si se eliminan los elementos, el primer elemento siempre empieza por 0 (cero).

Para eliminar elementos individuales en el menú control sin eliminar el menú entero, se puede especificar el comando de menú para eliminar. Por ejemplo, repetir las dos líneas siguientes de código, cuando se utiliza en lugar de la for... Next en Disable_Control macro, eliminar la (elemento 4) de maximizar y minimizar los comandos (elemento 3) y también deshabilitar los botones Maximizar y minimizar:
Call DeleteMenu(GetSystemMenu(Application.Hwnd, False), 4, 1024)
Call DeleteMenu(GetSystemMenu(Application.Hwnd, False), 3, 1024)

Propiedades

Id. de artículo: 814562 - Última revisión: jueves, 13 de febrero de 2014 - Versión: 2.5
La información de este artículo se refiere a:
  • Microsoft Excel 2002 Standard Edition
Palabras clave: 
kbnosurvey kbarchive kbmt kbinfo KB814562 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): 814562

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