http://www.mrexcel.com/archive/Edit/1059.html
===================================================
Sub CreateTOC()
Dim CurSheet As Worksheet
Dim sSheetNames() As String
Dim iCounter As Integer
Dim iX As Integer
'If the workbook already has a TOC sheet, delete it
For Each CurSheet In Application.Worksheets
If CurSheet.Name = "TOC" Then
Application.DisplayAlerts = False
CurSheet.Delete
Application.DisplayAlerts = True
End If
Next CurSheet
iCounter = 0
'Put all sheet names in this workbook in an array
For Each CurSheet In Application.Worksheets
CurSheet.Activate
'Add one element to the array
ReDim Preserve sSheetNames(iCounter)
'Get the sheet name
sSheetNames(iCounter) = CurSheet.Name
'Increment the counter
iCounter = iCounter + 1
Next CurSheet
'Add new TOC sheet
Worksheets.Add Before:=Worksheets(1)
Application.ActiveSheet.Name = "TOC"
'Add Hyperlinks to the TOC sheet
For iX = 1 To UBound(sSheetNames)
Application.Range("A" & iX).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=sSheetNames(iX) & "!A1"
Next iX
Columns("A:A").EntireColumn.AutoFit
Application.Range("A1").Select
End Sub