Office 2007 - Excel Tips 2007 - 2013

Tip 154

154/207 Lessen 

Randen met één lijntje VBA-code

In deze tip toon ik jullie hoe je met één lijntje VBA-code, alle cellen kunt voorzien van randen.
Eigenlijk is het meer een vergelijk tussen Macro-code en VBA-code, die net hetzelfde doen.
De eerste met 40 lijnen code, de tweede met slechts één lijntje.

Als voorbeeld heb ik een lijstje met wat gegevens, en berekeningen. Maar dit maakt niks uit.
De bedoeling is elke cel te voorzien van een bovenrand, een onderrand, een linker- en een rechterrand.
Eerst het voorbeeld met een macro.
Klik de knop “Macro opnemen” (1) in de statusbalk.
Zie je deze niet staan, klik je “Macro’s” – “Macro opnemen” onder het tabblad “Beeld”.

Image1

Dit opent het venster “Macro opnemen”.
Geef deze eventueel een naam, een sneltoets, en een beschrijving.
Ik ga het zo simpel mogelijk houden, op deze manier voegt Excel de minste lijnen toe aan de code.
Klik de knop OK.

Image2

De opname is gestart, nu gaan we uitvoeren wat we willen bereiken.
Eerst maak ik een selectie van alle cellen dit moeten worden voorzien randen.

Image3

Vervolgens klik ik het naar benedenwijzend pijltje naast de knop “Rand”, en kies “Alle randen” in het pop-upmenu.
Dat is alles wat we willen doen, dus klik de knop “Opname macro stoppen”.

Image4

Al onze cellen zijn nu voorzien van randen.

Image5

We gaan eens zien welke code dit heeft gegenereerd voor onze macro.
Kies het tabblad “Ontwikkelaars” (1) en klik de knop “Visual Basic” (2).

Image6

Klik Module1 (1), en de code verschijnt aan de rechterzijde van het venster (2).
Meer dan 40 lijnen code voor een randje rond de cellen. Belachelijk veel.
Je moet je maar eens voorstellen wanneer je document een heleboel macro’s heeft.
Hoe lang zal het niet duren voor al deze lijnen code zijn verwerkt.

Image7

Dit kan veel eenvoudiger.
Het eerste wat we doen is alle code verwijderen tussen Sub en End Sub.

Image8

Vervolgens verwijderen we eerst de randen in de cellen door de knop “Ongedaan maken” te klikken.

Image9

Selecteer terug het Visual Basic scherm en typ volgende lijn met code (1) tussen het begin en het einde van de subroutine:
ActiveCell.CurrentRegion.Borders.LineStyle = xlContinuous

Plaats de cursor boven de lijn met code (2), staat die erachter, ja dan wordt die niet uitgevoerd.
Nogal logisch.
En klik de knop “Play” (3).

Image10

Voila, al onze cellen zijn met een lijntje code voorzien van randen.

Image11

Ik probeer de code ActiveCell.CurrentRegion.Borders.LineStyle = xlContinuous even uit te leggen:

ActiveCell = dit is de cel in het Bereik waarin de cursor op dat moment staat.

CurrentRegion = is het bereik waarin de aktieve cel zich bevindt. De rand van het gebied wordt bepaalt door de lege cellen.

Borders = de randen (alle randen)

LineStyle = .xlContinuous = hiermee bepalen we de lijnstijl, dus doorlopend.

Is het nuttig VBA te leren?
Mijn mening:
Maak je sporadisch eens gebruik van een of twee macro’s: Neen.
Maak je veel gebruik van verschillende macro’s in één en hetzelfde document: Ja.

Swotster denkt aan jullie, denk aan Swotster

Formidabel U hebt Tip 154 voltooid START VOLGENDE LES