Lav din egen værktøjslinie i Excel med VBA makroer
Det er nemt at lave sin egen værktøjslinie i Excel med nogle makroer skrevet i VBA. Man bestemmer selv udseendet (f.eks. hvilke ikoner der skal bruges som knapper), og man tildeler hver knap på værktøjslinien en makro eller en indbygget funktion i Excel.

Ikonerne vælger man blandt de mange FaceIds, som er til rådighed i Microsoft Office. På denne side findes en oversigt over dem alle med tilhørende numre.
Du kan teste eksemplet på denne side ved først at oprette et VBA-modul i Excels VBA-editor (tryk ALT+F11 for at åbne editoren og indsæt dernæst et VBA-modul). Markér koden på denne side, kopiér (CTRL+C) og indsæt den i modulet. Kør makroen "CreateMyTool".
Hvis du læser dette på en lille skærm, kan nogle af kodelinjerne se "knækkede" ud, men linjeskiftene er okay, når du kopierer ind i et VBA-modul.
Det kan laves, så værktøjslinien kun er aktiv i det pågældende regneark. I så fald skal du indsætte de sidste 2 makroer (Private Sub Workbook_Activate og Private Sub Workbook_Deactivate) i makroarket til ThisWorkbook. Så laves og slettes værktøjslinien, når du hhv. aktiverer og deaktiverer regnearket.
Option Explicit
Sub CreateMyTool()
Dim cbMyTool As CommandBar
Dim cbbMyButton As CommandBarButton
Set cbMyTool = CommandBars.Add
Set cbbMyButton = cbMyTool.Controls.Add(msoControlButton)
With cbbMyButton
.OnAction = "DummyMacro1"
.FaceId = 645
.TooltipText = "Tryl med tal"
End With
Set cbbMyButton = cbMyTool.Controls.Add(msoControlButton)
With cbbMyButton
.OnAction = "DummyMacro2"
.FaceId = 940
.TooltipText = "Vis en besked"
End With
Set cbbMyButton = cbMyTool.Controls.Add(msoControlButton)
With cbbMyButton
.OnAction = "DummyMacro3"
.FaceId = 385
.TooltipText = "Funktioner"
End With
Set cbbMyButton = cbMyTool.Controls.Add(msoControlButton)
With cbbMyButton
.OnAction = "DummyMacro1"
.FaceId = 1662
.TooltipText = "Betingelser"
End With
Set cbbMyButton = cbMyTool.Controls.Add(msoControlButton)
With cbbMyButton
.OnAction = "DummyMacro2"
.FaceId = 225
.TooltipText = "Lås celler"
End With
Set cbbMyButton = cbMyTool.Controls.Add(msoControlButton)
With cbbMyButton
.OnAction = "DummyMacro3"
.FaceId = 154
.TooltipText = "Nulstil alt"
End With
Set cbbMyButton = cbMyTool.Controls.Add(msoControlButton)
With cbbMyButton
.OnAction = "DummyMacro1"
.FaceId = 155
.TooltipText = "Tilbage"
End With
With cbMyTool
.Name = "Genveje"
.Left = Application.ActiveWindow.Width
.Top = Application.ActiveWindow.Height
.Visible = True
.Width = 300
End With
BeforeExit:
Set cbMyTool = Nothing
Set cbbMyButton = Nothing
Exit Sub
ErrorHandle:
MsgBox Err.Description & " CreateMyTool", _
vbOKOnly + vbCritical, "Fejl"
Resume BeforeExit
End Sub
Sub DeleteMyTool()
On Error Resume Next
CommandBars("Genveje").Delete
On Error GoTo 0
End Sub
Sub RemoveToolBar()
Dim cbBar As CommandBar
On Error GoTo ErrorHandle
For Each cbBar In Application.CommandBars
If Not cbBar.BuiltIn Then cbBar.Delete
Next
Exit Sub
ErrorHandle:
MsgBox Err.Description & " RemoveMenu", vbOKOnly, "Fejl"
End Sub
Sub DummyMacro1()
MsgBox "Skriv din egen makro i stedet for denne besked.", _
vbOKOnly, "Hej-hej"
End Sub
Sub DummyMacro2()
MsgBox "Skriv noget kode i VBA.", _
vbOKOnly, "Hallo De dér!"
End Sub
Sub DummyMacro3()
MsgBox "Og med min pil og bue jeg skød en albatros.", _
vbOKOnly, "Anders And"
End Sub
De følgende 2 makroer skal indættes i makrodelen til "ThisWorkbook". I VBA editoren dobbeltklikker du på ikonet ThisWorkbook, som står lige over moduloversigten i Projektoversigten. Er den ikke synlig, klikker du CTRL+R.
Makroerne sørger for, at din menu er synlig, når regnearket er aktivt, og usynlig, hvis det ikke er aktivt. Hvis du ønsker, at menuen kun skal være aktiv på et bestemt faneblad, skal du vælge det pågældende worksheet i stedet for ThisWorkbook.
Private Sub Workbook_Activate()
CreateMyTool
End Sub
Private Sub Workbook_Deactivate()
DeleteMyTool
End Sub
Som sagt er der tusindvis af de små ikoner (FaceId). På denne side er en oversigt over dem alle med tilhørende numre.
Relaterede sider:
|