El trabajo de hoy consiste en generar tareas de Outlook desde nuestro Excel, pero además la crearemos en la subcarpeta de tareas que queramos (en lugar de la carpeta por defecto).
En mi caso he creado en mi Outlook, una carpeta dentro de las tareas que he llamado 'Prueba':
Notemos como de momento no existe ninguna tarea...
Comenzaremos insertando un módulo estándar en nuestro proyecto de VB:
Tras ejecutar la macro comprobamos la carpeta de tareas de Outlook
Si editamos la tarea comprobaremos los datos cargados desde la macro:
En mi caso he creado en mi Outlook, una carpeta dentro de las tareas que he llamado 'Prueba':
Notemos como de momento no existe ninguna tarea...
Comenzaremos insertando un módulo estándar en nuestro proyecto de VB:
Sub CrearTareaOutlook() 'OJO Añadir la referencia 'Microsoft Outlook 16.0 Object Library' On Error GoTo Trata_Error 'control de errores genérico... Dim olApp As Object, objNS as object, defaultTasksFolder as object, subFolder as object, OlTask As Object 'Iniciamos MS Outlook... si no estuviera ya abierto On Error Resume Next Set olApp = GetObject(, "Outlook.Application") If Err.Number <> 0 Then 'si no está abierto Set olApp = CreateObject("Outlook.Application") End If On Error GoTo 0 'las siguientes líneas permiten añadir la nueva tarea 'en la carpeta que queramos.... Set objNS = olApp.GetNamespace("MAPI") Set defaultTasksFolder = objNS.GetDefaultFolder(olFolderTasks) Set subFolder = defaultTasksFolder.Folders("Prueba") 'Reemplaza 'Prueba' con el nombre de la subcarpeta que quieras 'definimos el objeto Tarea dentro de la Subcarpeta Set OlTask = subFolder.Items.Add(olTaskItem) 'y asignamos valores a las propiedades de la Tarea With OlTask .Display 'la mostramos / hacemos visible (si así lo queremos) .Subject = "Cargado desde Excel" 'asunto .StartDate = "01/02/2019" 'Fecha de inico: dd/mm/yyyy .DueDate = "11/02/2019" 'Fecha de vencimiento .Status = 3 '0=no comenzada, 1=en curso, 2=completada, 3=a la espera de otra persona, 4=aplazada .Importance = 2 '0=baja, 1=normal, 2=alta (Prioridad) .ReminderSet = True 'check de Aviso True/False .ReminderTime = "05/02/2019 12:30" 'fecha de aviso .Categories = "Categoría roja" 'Categoria .PercentComplete = 13 '% completado .Body = "Prueba de crear tarea desde una macro de Excel" 'Cuerpo de la tarea... .Save 'se guarda la tarea .Close (olPromptForSave) 'cerramos la tarea End With Trata_Salida: On Error Resume Next Set OlTask = Nothing Set subFolder = Nothing Set defaultTasksFolder = Nothing Set objNS = Nothing Set olApp = Nothing Exit Sub Trata_Error: MsgBox "Ha ocurrido el siguiente error" & vbCrLf & _ "Número error: " & Err.Number & vbCrLf & _ "Descripción del error: " & Err.Description, _ vbCritical, "FALLOOOOOOO!" Resume Trata_Salida End Sub
Tras ejecutar la macro comprobamos la carpeta de tareas de Outlook
Si editamos la tarea comprobaremos los datos cargados desde la macro:
como hacer para que aparezca insertado en el calendario? gracias
ResponderEliminarHola, que tal estás?
EliminarUn placer saludarte igualmente.
Creo que deberías echar un vistazo a esta otra entrada
https://excelforo.blogspot.com/2017/10/vba-rellenar-Citas-Calendario-Outlook-desde-Excel.html
Saludos