Addinfunktionalität MAC
25.04.2013 16:08:40
JACKD
Ich hab mit starker Unterstützung von Nepumuk und Luc
ein kleines Addin geschrieben.
Nun wie soll ich sagen, es funktioniert auch auf meinem PC.
Aber,
Ich hab es nun mal an einen Mac geschickt und da passiert folgendes. Das Addin erweitert die Menüzeile bei jeder Öffnung um die gleiche Position (also repliziert die Schaltfläche)
Hier der Code
''' In der Arbeitsmappe'''
Option Explicit
Private mobjApplicationClass As clsApplication
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set mobjApplicationClass = Nothing
End Sub
Private Sub Workbook_Open()
Set mobjApplicationClass = New clsApplication
End Sub
'''Im Modul'''
Option Explicit
Dim i, j As Double
Public Sub X()
Dim myCommandBar As CommandBar
Dim myCommandBarButton As CommandBarButton
Dim myCommandBarPopup As CommandBarPopup
Set myCommandBar = Application.CommandBars("Worksheet Menu Bar")
Set myCommandBarPopup = myCommandBar.Controls.Add(Type:=msoControlPopup, _
Before:=myCommandBar.Controls.Count + 1, Temporary:=True)
With myCommandBarPopup
.BeginGroup = True
.Caption = "mein_Makro"
.TooltipText = "für das aktuelle Blatt"
End With
Set myCommandBarButton = myCommandBarPopup.Controls.Add(Type:=msoControlButton, _
Before:=myCommandBarPopup.Controls.Count + 1, Temporary:=True)
With myCommandBarButton
.BeginGroup = True
.Caption = "für das aktuelle Blatt"
.FaceId = 283
.OnAction = "mein_Makro"
.Style = msoButtonIconAndCaption
.TooltipText = "für das aktuelle Blatt"
.Tag = "für das aktuelle Blatt"
End With
Set myCommandBar = Nothing
Set myCommandBarButton = Nothing
Set myCommandBarPopup = Nothing
End Sub
Sub mein_Makro()
'Diverses Zeug'
End Sub
'''In der Klasse'''
Option Explicit
Public WithEvents mobjApplication As Application
Public Sub Class_Initialize()
Set mobjApplication = Application
End Sub
Public Sub Class_Terminate()
Set mobjApplication = Nothing
End Sub
Public Sub mobjApplication_WorkbookOpen(ByVal Wb As Workbook)
If Not Wb Is ThisWorkbook Then Call X
End Sub
Public Sub mobjApplication_NewWorkbook(ByVal Wb As Workbook)
Call X
End Sub
Wieso passiert es also, dass es auf nem Doser geht, und auf nem Osx`ler dazu führt das sich das Menü stetig erweitert?Grüße
(In der Hoffnung das man das so leicht beantworten kann)