Проблема связана с тем, что код выполняет циклическое выполнение задач двумя различными способами. Цикл по коллекции задач будет проходить через каждую задачу независимо от того, видна она или нет. Использование метода SelectRow работает на только видимые задачи .
Самый простой способ синхронизировать эти два метода - начать с показа всехзадачи. Поместите этот код перед циклом *:
FilterApply "All Tasks"
SelectAll
OutlineShowAllTasks
SelectBeginning
* Обратите внимание, что это предполагает, что представление задачи активно, а для параметра Group By установлено значение [Без группы].
В качестве альтернативы вы можете выбратьнужную задачу, используя метод Find , а не SelectRow. К вашему сведению: это позволит пропустить сводные задачи, которые не отображаются.
Sub ColorSummaryTasks()
Dim t As Task
For Each t In ActiveProject.Tasks
If t.Summary Then
Find Field:="Unique ID", Test:="equals", Value:=t.UniqueID
If ActiveCell.Task.UniqueID = t.UniqueID Then
Select Case t.OutlineLevel
' code here
End Select
End If
End If
Next t
End Sub