Korte samenvatting
In deze video leer ik je hoe je automatisch een inhoudsopgave van alle werkbladen in je Excel bestand kunt maken. Vervolgens koppel je actieve hyperlinks aan die inhoudsopgave. Hierdoor kan je eenvoudig naar de werkbladen navigeren. Tenslotte maak je vanuit de losse werkbladen weer een link terug naar de inhoudsopgave.
De inhoudsopgave maken (video 0:00 – 9:29)
Een inhoudsopgave maken doe je met de For Each … Next lus. Het object is daarbij een werkblad, dat Excel in de inhoudsopgave moet opnemen. Dat object maak je aan als een variabele, van het type Worksheet (enkelvoud). In mijn video noem ik deze variabele MijnWerkblad. De verzameling bestaat uit alle werkbladen in je Excel bestand. Excel noemt deze verzameling Worksheets (meervoud). Meer uitleg over de For Each … Next lus, vind je terug in VBA les 12.
Dim MijnWerkblad As Worksheet For Each MijnWerkblad In Worksheets ... Next MijnWerkblad
Om de namen van werkbladen in de inhoudsopgave netjes in cellen onder elkaar te krijgen, heb je ook een ’teller’ nodig. Hiervoor maak je de variabele i aan, die je steeds met 1 ophoogt. Dat ophogen doe je binnen de For Each … Next lus. Meer uitleg over een variabele maken en gebruiken, vind je terug in VBA les 4.
Dim i As Integer
i = i + 1
Tenslotte maak je de inhoudsopgave aan, waarbij je de VBA eigenschap .Name gebruikt in de code. Met .Name haal je de naam van de werkbladen op. Het volgende stukje code plaats je dus ook in de For Each … Next lus.
ActiveSheet.Range("A" & i) = MijnWerkblad.Name
Hyperlinks aanbrengen (video 9:30 – 14:45)
Om hyperlinks aan te brengen, gebruik je de VBA methode .Hyperlinks.Add achter de naam van een werkblad. Hyperlinks worden ook wel gewoon ‘links’ genoemd.
werkblad.Hyperlinks.Add
Bij deze methode horen een aantal argumenten, die ik in de video behandel.
- Anchor:= Een verplicht argument. Hier geef je aan in welke cel je de link wilt aanmaken.
- Address:= Hier geef je aan naar welk web- of e-mailadres de link moet verwijzen. Aangezien dit een verplicht argument is, moet je het in de VBA code gebruiken. Als je niet naar een web- of e-mailadres wilt verwijzen, zet je Address:=”” in je code.
- SubAddress:= Een optioneel argument. Hier geef je aan naar welke cel je wilt linken in je Excel document.
ActiveSheet.Hyperlinks.Add Anchor:= cel waarin link moet komen, _ Address:="", _ Subaddress:= cel waarnaar de link in het document moet verwijzen
Terug naar inhoudsopgave linken (video 14:46 – 18:35)
Om terug te linken naar de inhoudsopgave, breng je opnieuw hyperlinks aan met de .Hyperlinks.Add methode. Het principe heb ik hierboven al beschreven.
Onderwerpen
In deze video bespreek ik de volgende onderwerpen:
- Dim … As Worksheet
- Dim … As Integer
- For Each … Next
- .Name
- .Hyperlinks.Add
- Anchor:=
- Address:=
- SubAddress:=
- If … End If
Bekijk de video en leer automatisch een inhoudsopgave maken in VBA. Het bestand dat ik in de video gebruik, staat onderaan deze blog. Je mag het gratis downloaden voor eigen gebruik.