Indholdsfortegnelse i Excel

By | 1. juni, 2017

Jo flere ark en Excel-fil består af, jo mere uoverskuelig bliver den. Så kan det være rart med en indholdsfortegnelse, så man hurtigt kan navigere rundt på arkene.

Der findes ikke en sådan funktion i Excel. Men hvad der ikke findes, kan man programmere sig til. Følgende makro opretter en indholdsfortegnelse med hyperlinks til alle ark i projektmappen. Første gang makroen køres, placeres indholdfortegnelsen der, hvor markøren er. Efterfølgende vil den blot udvide indholdsfortegnelsen det sted, hvor den først blev oprettet.

Sådan gør du:

Makroen skal oprettes i den personlige makroprojektmappe. Hvis denne ikke allerede findes, kan man oprette den ved at indspille en makro uden noget indhold. I båndet vælges under fanen Vis: Makroer og Indspil makro:

Sørg for, at makroen bliver gemt i “Personlig makroprojektmappe”. Klik OK og stop umiddelbart herefter indspilningen ved at trykke på stopknappen, som du finder i nederste venstre hjørne i statusbjælken.

Skift til udviklingsmiljøet ved at trykke Alt+F11. I projekt-browseren i venstre side vil du nu kunne finde PERSONAL.XLSB og under denne Modules og Module1. Dobbeltklik på Module1 for at åbne den i kodevinduet:

I kodevinduet ses den makro, du optog. Denne slettes og i stedet for indsættes følgende makro:

Sub OpretIndholdFortegnelse()
    Dim Ark As Worksheet
    Dim tæller As Long
    Dim Home As Range 'Retur adresse, hvis indholdfortegnelsen opdateres
   
    Set Home = ActiveCell
    'Forsøg på at gå til indholdsfortegnelsen vil fejle hvis den ikke findes
    On Error Resume Next 'Spring fejlen over
    Range("Indholdsfortegnelse").Worksheet.Activate
    Range("Indholdsfortegnelse").Select
   
    If Err.Number = 1004 Then 'Hvis fejlen opstår oprettes områdenavnet
        ActiveWorkbook.Names.Add Name:="Indholdsfortegnelse", RefersTo:= _
            "=" & ActiveSheet.Name & "!" & ActiveCell.Address
        Err.Clear
    End If
   
    On Error GoTo 0 'Deaktiverer On error resume next
   
    ActiveCell.Value = "Indholdsfortegnelse"
    tæller = 1
    For Each Ark In ActiveWorkbook.Worksheets
        ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell.Offset(tæller, 0), Address:="", _
            SubAddress:=Ark.Name & "!A1", TextToDisplay:=Ark.Name
        tæller = tæller + 1
    Next
   
    Home.Worksheet.Activate 'Spring tilbage til Home
    Home.Select
End Sub

Vend nu tilbage til Excel-regnearket og tilføj knappen i Officebåndet via Filer, Indstillinger, Tilpas båndet:

Tilføj makro til båndet

Makroen finder du i venstre side under makroer. Hvis du ikke allerede har et sted at placere makroen (højre side), kan du tilføje en ny fane og herunder en gruppe. Til sidst trækkes makroen over i fanen under den nye gruppe, og ikonet kan tilpasses.

Når du tester makroen, så sørg for at stå der, hvor du vil have din indholdsfortegnelse til at stå. Makroen opretter et områdenavn i indholdfortegnelsens første celle. Hvis du vil flytte indholdfortegnelsen til et andet sted, er det nemmest blot at markere den, klippe den ud og indsætte den der, hvor den i stedet for skal være. Herefter vil den blive opdateret det nye sted.