12 Excel aanpassen - Pearson Education
12 Excel aanpassen - Pearson Education
12 Excel aanpassen - Pearson Education
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Oefening <strong>12</strong>.2 Menu toevoegen via een macro<br />
1 Neem de volgende macro over om een menu toe te voegen:<br />
C Sub VoegEenMenuToe()<br />
Dim mnuMM As Object<br />
MsgBox Application.CommandBars(1).Controls.Count<br />
Set mnuMM = Application.CommandBars(1).Controls.Add _<br />
(Type:=msoControlPopup, before:=1, temporary:=True)<br />
mnuMM.Caption = "Ipaa &Service"<br />
mnuMM.Visible = True<br />
mnuMM.OnAction = "LogInDatabase"<br />
MsgBox Application.CommandBars(1).Controls.Count<br />
End Sub<br />
<strong>12</strong> <strong>Excel</strong> <strong>aanpassen</strong><br />
Eerst wordt het aantal menu’s geteld en weergegeven in een messagebox. Dan wordt een menu<br />
toegevoegd vóór het menu Bestand. De menutekst wordt opgegeven met een ampersand voor<br />
een letter die niet in een van de andere menu’s voorkomt. Dit wordt de sneltoets. De macro die<br />
uitgevoerd wordt is LogInDatabase. U kunt een willekeurige macro gebruiken die u gemaakt<br />
hebt. Tot slot wordt het aantal menu’s weer geteld en weergegeven.<br />
Bij menu’s op de menubalk – zoals in dit voorbeeld – wordt normaal gesproken geen handeling<br />
uitgevoerd als we op de menukeuze klikken. In dat geval laat u gewoon de OnAction eigenschap<br />
weg en vult u het menu met items.<br />
2 Deze macro verwijdert een specifiek toegevoegd menu. U noemt het dus bij naam!<br />
C Sub VerwijderEenMenu()<br />
Application.CommandBars(1).Controls("Ipaa &Service").Delete<br />
End Sub<br />
Overigens is het een goede zaak om een menu eerst te verwijderen voordat u het toevoegt.<br />
Bestaat het menu namelijk al en u voegt het (nogmaals) toe, dan zijn er twee! In de procedure<br />
VoegEenMenuToe roept u gewoon eerst de procedure VerWijderEenMenu aan. Probeert u<br />
daarentegen een menu te verwijderen, terwijl het nog niet bestaat, dan levert dat een fout in de<br />
macro op.<br />
3 Deze fout kunt u als volgt voorkomen:<br />
C Sub VerwijderEenMenu()<br />
On Error Resume Next<br />
Application.CommandBars(1).Controls("Ipaa &Service").Delete<br />
On Error Goto 0<br />
End Sub<br />
Voeg deze uitbreiding pas toe als alles foutloos werkt. Met On Error Resume Next zegt u ’Ga<br />
305