AW: Funktionsaufruf aus Add In
07.06.2005 17:42:44
EffHa
Hier gibt es nur die Möglichkeit, sich über eine Symbolleiste die jeweilige Funktion einzurichten
Hier ein Beispiel, das beim Einbinden des AddIn automatisch einen neuen Menüpunk "My-Makros" erstellt.
Die Funktionsnamen müssen noch angepasst werden.´
Der Code muss als Modul in das xla aufgenommen werden.
Option Explicit
Const SYM_NAME = "MyMakros"
Sub Auto_Open()
Dim objCB As CommandBar
On Error Resume Next
Call My_Menu
End Sub
Private Sub ButtonAnlegen(strCaption As String, strToolTipText As String, intFaceID As Integer, strMakro As String, blnGruppe As Boolean)
Dim objCTL As CommandBarControl
Set objCTL = CommandBars(SYM_NAME).Controls.Add(Type:=msoControlButton)
With objCTL
.BeginGroup = blnGruppe
.Style = msoButtonIconAndCaption
.Caption = strCaption
.TooltipText = strToolTipText
.FaceId = intFaceID
.OnAction = strMakro
End With
End Sub
Sub My_Menu()
'
Dim i_Fenster As Integer 'vorletzter Menueintrag, davor
Dim MenuMyMakros As CommandBarControl
'--------------------------------------------
Dim UnterMenuBeleg As CommandBarPopup
Dim UnterMenuBelegFormat As CommandBarPopup
'--------------------------------------------
Dim MB As CommandBarControl 'MB : MenuButton
'-------- My-Makro einfügen -------------------------------
I = Application.CommandBars(1).Controls.Count
i_Fenster = Application.CommandBars(1).Controls(I).Index - 2
Set MenuMyMakros = Application.CommandBars(1). _
Controls.Add(Type:=msoControlPopup, _
Before:=i_Fenster, temporary:=True)
MenuMyMakros.Caption = "&My-Makros"
'----------------------------------------------------------------
'--------------- Untermenü Beleg --------------------------------
'----------------------------------------------------------------
Set UnterMenuBeleg = MenuMyMakros.Controls.Add _
(Type:=msoControlPopup, temporary:=True)
With UnterMenuBeleg
.Caption = "BelegEingabe"
.BeginGroup = True
End With
'----------- Untermenu Beleg | Formatierungen -------------------------
Set UnterMenuBelegFormat = UnterMenuBeleg.Controls.Add(Type:=msoControlPopup, temporary:=True)
With UnterMenuBelegFormat
.Caption = "Formatierungen"
.BeginGroup = True
End With
'----------- Einträge im Untermenu Beleg | Formatierungen -------------------------
Set MB = UnterMenuBelegFormat.Controls.Add(Type:=msoControlButton)
With MB
.Caption = "Format ErfasstDat"
.OnAction = "Funktionsname" ' hier muss der Name der Funktion stehen
'.BeginGroup = True
.Style = msoButtonIconAndCaption
.FaceId = 2145
End With
Set MB = UnterMenuBelegFormat.Controls.Add(Type:=msoControlButton)
With MB
.Caption = "Rechercheliste druckaufbereitet"
.OnAction = "Weitere Funktion" 'hier muss der Name der Funktion stehen
'.BeginGroup = True
.Style = msoButtonIconAndCaption
.FaceId = 2145
End With
End Sub