AW: Verlust von benutzerdef. Menüs bei "SaveCopyAs
12.01.2005 12:51:02
benutzerdef.
H Thorsten,
ja sicher, hier der Code für "WORKBOOK".
Das Menü heist "Rahmen-Protokollkonverter", der Button darin "Protokollkonverter".
Ist für diesen Fall unter "Extras - Anpassen" angelegt und angebunden worden.
Das Menü wird bei öffnen der Arbeitsmappe in dei Menüleiste eingebaut, bei schließen gelöscht und auch sichtbar oder unsichtbar geschaltet wenn die Mappe aktiv ist oder nicht. Ich kann auf Wunsch auch eine Beispielmappe liefern.
Gruß Holger.
'Menüs erzeugen
Private Sub Workbook_Open()
Dim standardmenubar As CommandBar
Dim mycommandbar As CommandBar
Dim c As CommandBarControl
Set standardmenubar = Application.CommandBars("worksheet menu bar")
Set mycommandbar = Application.CommandBars("Rahmen-Protokollkonverter")
mycommandbar.Visible = False
' Test, ob Menü schon existiert
For Each c In standardmenubar.Controls 'In allen Menüs ...
If c.Caption = mycommandbar.Controls(1).Caption Then 'Wenn Menü schon existiert
c.Visible = True 'Sichtbar machen
Exit Sub 'Schleife verlassen
End If
Next
' Menü existiert noch nicht: daher kopieren
Set c = mycommandbar.Controls(1).Copy(standardmenubar, standardmenubar.Controls.Count)
c.Visible = True
End Sub
' Aufräumarbeiten
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim standardmenubar As CommandBar
Dim mycommandbar As CommandBar
Dim c As CommandBarControl
Dim i_anz_texte As Integer 'Anzahl aktiver Kommentare
Set standardmenubar = Application.CommandBars("worksheet menu bar")
Set mycommandbar = Application.CommandBars("Rahmen-Protokollkonverter")
' Test, ob Menü schon existiert
For Each c In standardmenubar.Controls
If c.Caption = mycommandbar.Controls(1).Caption Then
c.Delete
End If
Next
mycommandbar.Delete
End Sub
' Menü aktivieren/deaktivieren
Private Sub Workbook_Activate()
Application.CommandBars("worksheet menu bar").Controls("Protokollkonverter").Visible = True
End Sub
Private Sub Workbook_Deactivate()
On Error Resume Next
Application.CommandBars("worksheet menu bar").Controls("Protokollkonverter").Visible = False
End Sub