Te adjunto una nueva macro para los sub directorios con la modificaiones que solicitas:
Sub ficheros_y_subdirectorios_del_directorio()
On Error Resume Next
Application.ScreenUpdating = False
Set fso = CreateObject("Scripting.FileSystemObject")
ruta = "Y:\TEMPO\"
Set directorio = fso.GetFolder(ruta)
Set subdirectorios = directorio.subfolders
Set ficheros = directorio.Files
Range("D6").Select
ActiveCell = "Subdirectorios del directorio:"
ActiveCell.Font.Bold = True
ActiveCell.Font.Underline = xlUnderlineStyleSingle
ActiveCell.Offset(1, 0).Select
For Each subdirectorio In subdirectorios
ActiveCell = subdirectorio.Name
ruta1 = ruta & subdirectorio.Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
ruta1, TextToDisplay:=subdirectorio.Name
ActiveCell.Offset(1, 0).Select
Next
ActiveCell = "Ficheros del directorio:"
ActiveCell.Font.Bold = True
ActiveCell.Font.Underline = xlUnderlineStyleSingle
ActiveCell.Offset(1, 0).Select
For Each archivo In ficheros
ActiveCell = archivo.Name
ruta1 = ruta & archivo.Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
ruta1, TextToDisplay:=archivo.Name
ActiveCell.Offset(1, 0).Select
Next
Set fso = Nothing
Set directorio = Nothing
Set subdirectorios = Nothing
Set ficheros = Nothing
Application.ScreenUpdating = True
End Sub
Fuente:
http://hojas-de-calculo-en-excel.blogspot.com/2008/11/listar-los-archivos-de-un-directorio.html