Gruppe
Menue
Bereich
Button
Thema
Menüpunkt bei Aktivieren einer Mappe erstellen
Problem
Beim Aktvieren einer Arbeitsmappe mit dem String "KN." im Namen, also beispielsweise "WKN.xls", soll im Arbeitsblattmenü ein neuer Menüpunkt "KN-Befehl" erscheinen, beim Deaktivieren der Mappe wieder gelöscht werden.
Lösung
Geben Sie den Ereigniscode in das Klassenmodul der Arbeitsmappe ein.
ClassModule: DieseArbeitsmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("KN-Befehl").Delete
On Error GoTo 0
End Sub
Private Sub Workbook_Open()
Set app.xlApp = Application
End Sub
ClassModule: clsApp
Public WithEvents xlApp As Application
Private Sub xlApp_WorkbookActivate(ByVal Wb As Workbook)
Dim oBar As CommandBar
Dim oBtn As CommandBarButton
Set oBar = Application.CommandBars("Worksheet Menu Bar")
On Error Resume Next
oBar.Controls("KN-Befehl").Delete
On Error GoTo 0
If InStr(ActiveWorkbook.Name, "KN.") Then
Set oBtn = oBar.Controls.Add
With oBtn
.Caption = "KN-Befehl"
.OnAction = ThisWorkbook.Name & "!KNBefehl"
.Style = msoButtonCaption
End With
End If
End Sub
StandardModule: basMain
Public app As New clsApp
Sub KNBefehl()
MsgBox "Ich bin der WKN-Befehl!"
End Sub