如何以编程方式更改MS Project 2007单元格中的背景颜色?

时间:2012-12-30 15:03:34

标签: c# ms-project office-automation

我想使用C#自动化一些MS Project功能,但无法找到如何更改特殊任务单元的背景和字体颜色的解决方案。

我枚举该代码示例中项目中的所有任务,如果statemet为true,我想更改当前单元格颜色

foreach(Task t in Project.Tasks)
{
    if(t.Name=="TaskName")
    {
        //I want to change back color of current cell here
    }
}    

1 个答案:

答案 0 :(得分:0)

最简单的部分是如何选择单元格并更改单元格的颜色:Application.SelectTaskCell以选择单元格link to MSDNApplication.ActiveCell.CellColor来设置单元格的颜色link to MSDN

但是有一个棘手的部分:Application.SelectTaskCell接受rowId作为第一个参数,并且无法通过任何任务属性获取行ID。所以我在测试样本中做了什么:

  1. 通过切换到“所有任务”过滤器(Project.TaskFilters集合)
  2. 来停用过滤器
  3. 禁用分组(Application.GroupApply("No Group")
  4. 禁用自动筛选(Application.AutoFilter = False
  5. 按ID(Application.Sort(Key1:="ID", Ascending1:=True)
  6. 计算所有内容

    之后,Task.ID应该非常接近任务行的Id。您可以通过ActiveCell.Task仔细检查选择的任务,但这取决于您。