Grafieken uitlijnen
- 20/02/2007
Voorbeeldbestanden bij dit artikel: | |
Inleiding
Grafieken manueel uitlijnen kan soms een heel karwei zijn, zelfs als je ze vergroot/verkleint/verplaatst met de Alt toets ingedrukt (dan wordt er automatisch gepakt naar de celranden.
VBA-code
Hier geef ik wat VBA-code mee om alle grafieken in een werkblad ineens dezelfde afmetingen te geven en ze ook uit te lijnen. Ongeacht hoeveel grafieken het zijn, de VBA-code gaat in een lus voorbij elke grafiek en neemt de juiste actie. De waarden kan je zelf gemakkelijk aanpassen in de code.
Sub GrafiekenUitlijnen()' Wim Gielis ' https://www.wimgielis.com''''' ' Custom module to organize charts on a sheet ' 20/02/07 '''''Dim l As Long For l = 1 To ActiveSheet.ChartObjects.Count With ActiveSheet.ChartObjects(l) ' afmetingen van elke grafiek zelf: .Width = 270 ' breedte .Height = 250 ' hoogte ' ligging van de grafieken op het blad: .Left = 50 + 300 * (l - 1) ' horizontale positie .Top = 200 ' verticale positie End With NextEnd Sub
Opmerkingen
Nog drie korte opmerkingen over deze code:
-
Het is perfect mogelijk om relatieve i.p.v. absolute waarden te gebruiken. Bvb:
.Height = .Width * 1.5
of.Left = 50 + .Width * 1.1 * (l - 1)
-
De grafieken onder mekaar plaatsen kan ook:
.Left = 500 .Top = 50 + 300 * (l - 1)
-
Wil je de meest linkse grafiek net naast het eerste scherm zetten (dus net erbuiten), doe dan bv.:
.Left = Application.UsableWidth - _ IIf(ActiveWindow.DisplayVerticalScrollBar, 10, 0) - _ IIf(ActiveWindow.DisplayHeadings, 14, 0) + (l - 1) * .Width
Het bestandje bovenaan de pagina bevat de VBA-code en een voorbeeld met 3 grafieken. Klik op de knop en zie wat er gebeurt.