#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, хотя и без большой дополнительной работы.