Ya comentaste que todos los archivos están en una sola carpeta, lo que facilita lo que quieres lograr pero, como no lo mencionaste, yo voy a suponer que cada archivo *.pdf creado lleva por nombre una combinación del nombre del archivo/libro que lo contiene y el propio nombre de la hoja (ya si tú deseas otro lo modificas a tu necesidad). Entonces, prueba así:
Sub HojaArchivosaPDF()
Dim Archivos As String, NombreHoja As String, NombreArchivo
Dim UltimaHoja As Integer
Archivos = Dir(ThisWorkbook.Path & "\*.xlsx")
Do While Archivos <> ""
Workbooks.Open ThisWorkbook.Path & "\" & Archivos
With ActiveWorkbook
Let UltimaHoja = .Worksheets.Count
Let NombreHoja = .Worksheets(UltimaHoja).Name
Let NombreArchivo = Left(.Name, InStrRev(.Name, ".") - 1)
.Worksheets(UltimaHoja).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\" & NombreArchivo & NombreHoja & ".pdf", Quality:=xlQualityMinimum, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
.Close SaveChanges:=True
End With
Archivos = Dir
Loop
End Sub
Salu2
Abraham Valencia
PD: Más que buscar "una macro" que haga lo que en especifico uno necesita, lo que hay que buscar siempre es programar a ncesidad :)