Pruebe con este código
Sub ExportarTareasAExcel()
Dim appExcel As Object
Dim wbExcel As Object
Dim wsExcel As Object
Dim t As Task
Dim i As Integer
Dim NombreArchivo As String
Dim NombreProyecto As String
' Crea una instancia de Excel
Set appExcel = CreateObject("Excel.Application")
appExcel.Visible = True ' Cambiar a False si no quieres ver Excel durante la ejecución
' Crea un nuevo libro de trabajo
Set wbExcel = appExcel.Workbooks.Add
Set wsExcel = wbExcel.Worksheets(1)
' Obtén el nombre del proyecto
NombreProyecto = ActiveProject.Name
' Configura las columnas en Excel
With wsExcel
.Cells(1, 1).Value = "ID"
.Cells(1, 2).Value = "Nombre de Tarea"
.Cells(1, 3).Value = "Duración"
.Cells(1, 4).Value = "Inicio"
.Cells(1, 5).Value = "Fin"
.Cells(1, 6).Value = "Asignado a"
End With
' Llena las filas con datos de las tareas
i = 2
For Each t In ActiveProject.Tasks
If Not t Is Nothing Then
wsExcel.Cells(i, 1).Value = t.ID
wsExcel.Cells(i, 2).Value = t.Name
wsExcel.Cells(i, 3).Value = t.Duration
wsExcel.Cells(i, 4).Value = t.Start
wsExcel.Cells(i, 5).Value = t.Finish
wsExcel.Cells(i, 6).Value = Join(t.Assignments, ", ") ' Unir los nombres de recursos asignados
i = i + 1
End If
Next t
' Guardar el archivo de Excel con el nombre del proyecto
NombreArchivo = Application.ActiveProject.Name
If Right(NombreArchivo, 4) <> ".xlsx" Then
NombreArchivo = NombreArchivo & ".xlsx"
End If
WbExcel. SaveAs Application.GetSaveAsFilename(NombreArchivo, "Excel Files (*.xlsx), *.xlsx")
' Cierra Excel
wbExcel.Close SaveChanges:=False
appExcel.Quit
' Limpia los objetos
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing
MsgBox "Exportación completada. Archivo guardado como " & NombreArchivo
End Sub