AW: Benutzerdefinierte Symbolleiste
21.07.2006 11:42:07
Matthias
Hallo Helen,
ich habe eine benutzerdefinierte Symbolleiste programmiert und als 'Private' deklariert
?
Am besten ist es, die Symbolleiste wird beim Aktivieren das Mappe erstellt und beim Deaktivieren gelöscht.
in DieseAbeitsmappe
Private Sub Workbook_Activate()
BaueSymbolleiste
End Sub
Private Sub Workbook_Deactivate()
LöscheSymbolleiste
End Sub
In ein Modul:
Const SymbolleistenName = "Meine Symbolleiste"
Sub LöscheSymbolleiste()
On Error Resume Next 'falls nicht vorhanden
Application.CommandBars(SymbolleistenName).Delete 'löschen, falls vorhanden
End Sub
Sub BaueSymbolleiste()
Const hh = 5
Dim cB As CommandBar
Dim CBC As Object
'Löschen, falls schon vorhanden
On Error Resume Next
Application.CommandBars(SymbolleistenName).Delete 'löschen, falls vorhanden
On Error GoTo 0
Set cB = Application.CommandBars.Add(Name:=SymbolleistenName, _
temporary:=True, Position:=msoBarTop, MenuBar:=msoBarTypeNormal)
cB.Visible = True
cB.Protection = msoBarNoMove
cB.Enabled = True
Set CBC = cB.Controls.Add(Type:=msoControlButton)
With CBC
.Style = msoButtonCaption
.BeginGroup = True
.Caption = "Makro1"
.OnAction = "Makro1"
.TooltipText = "starte Makro 1"
End With
Set CBC = cB.Controls.Add(Type:=msoControlButton)
With CBC
.Style = msoButtonIconAndCaption
.FaceId = 12
.BeginGroup = True
.Caption = "Makro2"
.OnAction = "Makro2"
.TooltipText = "starte Makro 2"
End With
'usw. usf.
End Sub
Sub Makro1()
MsgBox "Makro1"
End Sub
Sub Makro2()
MsgBox "Makro2"
End Sub
Gruß Matthias