Estoy intentando que un documento excel añada varios elementos de menú
y que los elimine al cerrarse. Añadirlos es cosa hecha y funcionan
correctamente, pero no consigo que los quite al salir, ni que deje de
duplicarlos al volver a abrir el documento.
Pego mi código (que salió originalmente de este mismo grupo :) en el
que he eliminado todos los elementos menos uno, a ver si veis el
fallo.
Gracias de antemano y un saludo.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call EliminarMenúTítulo
End Sub
Private Sub Workbook_Open()
If Facturas.Visible = True Then Exit Sub 'si no existe el el elemento
'Facturas, da un error. Si existe, esta línea no hace lo que espero y
lo duplica :(
Dim MenúAyuda As CommandBarControl
Dim MenúNuevo As CommandBarPopup
Dim ElementoDeMenú As CommandBarButton
'Eliminar el menú, si existe
Call EliminarMenúTítulo
'Localizar el menú Ayuda
Set MenúAyuda = Application.CommandBars(1).FindControl(ID:0010)
If MenúAyuda Is Nothing Then
'Añadir el nuevo menú al final
Set MenúNuevo = CommandBars(1).Controls _
.Add(Type:=msoControlPopup, temporary:=True)
Else
'Añadir el nuevo menú antes de Ayuda
Set MenúNuevo = Application.CommandBars(1).Controls _
.Add(Type:=msoControlPopup, before:=MenúAyuda.Index, _
temporary:=True)
End If
'Añadir un título
MenúNuevo.Caption = "Facturas"
'PRIMER ELEMENTO DE MENÚ
Set ElementoDeMenú = MenúNuevo.Controls.Add _
(Type:=msoControlButton)
ElementoDeMenú.Caption = "Actualizar ficheros"
ElementoDeMenú.OnAction = "Hoja1.ActualizarFicheros"
Set MenúAyuda = Nothing
Set MenúNuevo = Nothing
Set ElementoDeMenú = Nothing
End Sub
Public Sub EliminarMenúTítulo()
'(Este sub deberá ser llamado por el evento BeforeClose del libro)
On Error Resume Next
Application.CommandBars("Facturas").Delete 'no lo borra. Compruebo
que el punto de ejecución si que pasa por esta línea al cerrar el doc,
pero no lo borra.
On Error GoTo 0
End Sub
Leer las respuestas