Skapa & Lägga till verktygsfält
När vi skapar egna arbetsböcker är det ibland önskvärt att kunna lägga till ett eget anpassat verktygsfält.
Här demonstreras en teknik för att skapa och lägga till ett verktygsfält, knutet till en arbetsbok.
Så här ser verktygsfältet ut när vi har kört nedanstående procedurer:
Proceduren som både skapar och lägger till verktygsfältet anropas när arbetsboken öppnas i följande händelseprocedur:
Private Sub Workbook_Open()
Call Skapa_Verktygsfält
End Sub
Här presenteras den s k huvudproceduren.
Egenskapen "OnAction" för respektive "Control"-objekt tilldelas en procedur.
En annan egenskap - "FaceId" - tilldelas en knappbild medan egenskapen "TooltipText" - beskriver vad knappen utför.Vill du veta mer om vilka inbyggda knappar som finns att tillgå så se Face-ID (Knappbilder).
Sub Skapa_Verktygsfält()
'Här säkerhetsställer vi att inget verktygsfält med
'namnet existerar.
On Error Resume Next
Application.CommandBars("XL-Dennis").Delete
On Error GoTo 0
'Först skapar vi själva verktygsfältet
With Application.CommandBars.Add(Name:="XL-Dennis")
'Därefter lägger vi till varje objekt vi önskar ha i
'verktygsfältet.
With .Controls.Add(Type:=msoControlButton)
.OnAction = "Procedurnamn som ska köras"
.FaceId = 343
.TooltipText = "Text som ska visas"
End With
With .Controls.Add(Type:=msoControlPopup)
.Caption = "Bladsortering"
.TooltipText = "Sortera stigande eller fallande"
With .Controls.Add(Type:=msoControlButton)
.Caption = "Sortera Stigande"
.FaceId = 210
.OnAction = "Sortera_Stigande"
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "Sortera Fallande"
.FaceId = 211
.OnAction = "Sortera_Fallande"
End With
End With
With .Controls.Add(msoControlDropdown)
.AddItem "AA"
.AddItem "BB"
.AddItem "CC"
.OnAction = "Procedurnamn som ska köras"
.TooltipText = "Text som ska visas"
End With'Här bestämmer vi vad någonstans i fönstret
'verktygsfältet ska placeras samt visar det.
.Position = msoBarTop
.Visible = True
End With
End SubVill vi förhindra att användarna kan ändra på verktygsfältet kan vi använda oss av egenskapen "protection", vilken erbjuder ett flertal skyddsmöjligheter (se direkthjälpen).
När arbetsboken stängs är det önskvärt att även ta bort det anpassade verktygsfältet, vilket sker i följande händelseprocedur:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next'Vid anrop till CommandBars i en händelseprocedur måste en
'fullständig referens anges:
Application.CommandBars("XL-Dennis").Delete
End SubSe också Dölja & Visa verktygsfält