Задачи цветового кодирования в макросе Microsoft Project

#macros #ms-project #color-coding

#макросы #ms-project #цветовое кодирование

Вопрос:

Кажется, что это должно быть прямолинейно, но я вижу какое-то странное поведение. Я пытаюсь раскрасить свои задачи на основе флага. Кажется, что задачи окрашены правильно, но в какой-то момент обработки исходные задачи, которые были окрашены, сбрасываются в черный. Задача, в которой это происходит, также кажется довольно непоследовательной. Вот как я пытаюсь выполнить эту задачу (упрощенную до самой простой формы):

 Sub ColorTasks()
    Dim t As Task
    For Each t In ActiveProject.Tasks
        SelectRow t.ID, RowRelative:=False
        Font32Ex Color:=2366701
    Next
End Sub
  

Этот код, похоже, отлично работает для небольших наборов данных, но этот проект содержит около 2000 задач. Есть идеи?

Комментарии:

1. Мне это тоже интересно; если вы найдете ответ, пожалуйста, опубликуйте.

Ответ №1:

Да, у меня тоже похожая проблема::

 For Each t In tsks
    Select Case t.Text1
        Case "COMPLETE"
            SelectRow Row:=t.ID, RowRelative:=False
            Font32Ex CellColor:=amp;659B59
        Case "NOT STARTED"
            SelectRow Row:=t.ID, RowRelative:=False
            Font32Ex CellColor:=amp;862525
        Case "IN PROGRESS"
            SelectRow Row:=t.ID, RowRelative:=False
            Font32Ex CellColor:=amp;3A3AD4
    End Select
Next t
  

Согласно:http://msdn.microsoft.com/en-us/library/ff863572.aspx это должно сработать, но я каждый раз получаю синтаксические ошибки. Единственный способ заставить это работать — использовать метод FontEx, который ограничивает меня только 16 цветами….

Ответ №2:

Я знаю, что это старый вопрос, но я надеюсь, что это может быть полезно для кого-то с подобной проблемой.

Ошибка в том, что вы забыли добавить ‘H’ перед шестнадцатеричным числом, поэтому правильно должно быть:

 Font32Ex CellColor:=amp;H3A3AD4
etc
  

Ответ №3:

Я считаю, что проще использовать значения RGB.
Font32Ex CellColor:=RGB(255, 199, 206) 'Changes fill
Font32Ex Color:=RGB(156, 0, 6) ' Changes font color

Используя ваш код, я изменил весь свой лист на красный на розовый, 350 задач. У меня нет средств протестировать это на 2000, хотя и без большой дополнительной работы.