Получать информацию о выполненных и будущих задачах, распланированных в соответствующем разделе Outlook, можно с помощью кода из этой статьи. Может, например, пригодиться для автоматического формирования перечня задач находящихся в работе и уже исполненных.
Private Sub LoadTask() Dim fTasks As Outlook.MAPIFolder Dim Tasks As Outlook.Items Set fTasks = Outlook.GetNamespace("MAPI").GetDefaultFolder(olFolderTasks) Set Tasks = fTasks.Items Tasks.Sort "[StartDate]", True For i = 1 To Tasks.Count 'Тема задачи ActiveSheet.Range("A" & i).Value = _ Replace(Trim(Tasks(i).Subject), Chr(10), " ") 'Статус задчи If Tasks(i).Complete Then ActiveSheet.Range("B" & i).Value = "Завершена" Else ActiveSheet.Range("B" & i).Value = "В работе" End If 'Тип задчи If Tasks(i).IsRecurring Then ActiveSheet.Range("C" & sr).Value = "Регулярная задача" Else ActiveSheet.Range("C" & sr).Value = "Единичная задача" End If ActiveSheet.Range("D" & sr).Value = Tasks(i).StartDate 'Срок окончания задачи ActiveSheet.Range("E" & sr).Value = Tasks(i).DueDate 'Дата выполнения ActiveSheet.Range("F" & sr).Value = Tasks(i).DateCompleted 'Описание задачи ActiveSheet.Range("G" & sr).Value = Tasks(i).Body ActiveSheet.Range("H" & sr).Value = Tasks(i).Owner Next i End Sub |
Продолжить чтение »
Следующий код, помещённый в VBA редакторе на соответствующий лист, позволяет двойным кликом левой кнопки мыши по ячейке в первом столбце устанавливать в ней попеременном галочку, либо крестик.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target If .Column = 1 Then Select Case .Value Case Is = "a" .Font.Name = "Marlett" .Value = "r" Case Is = "r" .Font.Name = "Marlett" .Value = "a" Case Else .Font.Name = "Marlett" .Value = "a" End Select Cancel = True End If End With End Sub |
Результат работы макроса выглядит следующим образом: