Telefonszámunk: 1-472-0679

Tartalomjegyzék a munkalapokból makróval

2020-10-19 - horvimi - Kategória: Munkalapok műveletei
Hivatkozott Excel verzio: Excel 2010 Excel 2013 Excel 2016 Office365

Mostanában sokat dolgoztam Excel tananyagfejlesztésen. Az elméleti, illetve a gyakorlati részeket Excel munkafüzetek munkalapjaira tettem. Arra gondoltam, hogy jól nézne ki az elején egy tartalomjegyzék, ahol linkekre kattintva lehet ugrani a kattintott munkalapra. Ehhez a munkalapok neveiből egy hiperlink listát kell készíteni, ami manuálisan, egyenként elég fájdalmas lenne. Úgyhogy összekalapáltam egy kis makrót, amit betettem az egyéni makró munkafüzetembe, és adtam hozzá egy gombot az eszköztáron. A makró futása után valami hasonló eredményt kaptam:

Excel-tartalomjegyzék

Íme a tartalomjegyzék makró

Sub Tartalomjegyzek()
Dim sh As Worksheet

    For Each sh In Worksheets
        If ActiveSheet.Name <> sh.Name Then
            ActiveCell.Hyperlinks.Add anchor:=ActiveCell, Address:="", _
              SubAddress:="'" & sh.Name & "'" & "!A1", TextToDisplay:=sh.Name
            With ActiveCell.Font
                .Name = "Arial"
                .Size = 16
            End With
        ActiveCell.Offset(1, 0).Select
        End If
     Next sh
End Sub

Így működik

A feladatot egy ciklusba szervezve látjuk. Egy változóval végiglépked az aktuális munkafüzet minden munkalapján, és az aktuális lap kivételével a többi lapról készít egy tartalomjegyzék linket. Ezután megformázza, és a következő cellára lép lefelé.

A linket a Hyperlinks.Add parancs készíti, amit a munkalap nevéből (amit biztonság kedvéért felső aposztrófok közé tesz), egy felkiáltójelből és az A1-es cellából rak össze. A linken kattintva a cellakurzor az adott munkalap A1-es cellájára ugrik.

A makró a fenti képen látható logót és a munkafüzet nevét nem teszi be, csak a tartalomjegyzéket az aktuális cellától.

Nem törli maga alatt a tartományt, nem kapcsolja ki a rácsot, ezeket a magunknak kell megtenni manuálisan, vagy tovább is fejleszthetjük a kódot.

Nézzük, hogy hogyan üzemeljük be!

 

 

Vélemény, hozzászólás?