Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Menüpunkt bei Aktivieren einer Mappe erstellen

Gruppe

Button

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

    

Beiträge aus dem Excel-Forum zu den Themen Menue und Button