这是我使用的一个宏:
公共子格式Outline_Blue()
呼叫格式OutlineLevels(9851951, 14396046, 15189684, 14084850, 15791610, 16777215, 16777215, 16777215, 16777215, 16777215)
结束子
公共子格式Outline_Green()
呼叫格式OutlineLevels(4697456, 9293992, 11788485, 14084850, 15791610, 16777215, 16777215, 16777215, 16777215, 16777215)
结束子
公共子格式Outline_Aqua()
呼叫格式OutlineLevels(13998939, 15057820, 15652797, 14084850, 15791610, 16777215, 16777215, 16777215, 16777215, 16777215)
结束子
Private Sub FormatOutlineLevels(level1 为字符串,level2 为字符串,level3 为字符串,level4 为字符串,level5 为字符串,level6 为字符串,level7 为字符串,level8 为字符串,level9 为字符串,可选 font1 为字符串)
'格式化大纲级别。宏过滤到摘要任务,选择整个工作表,显示大纲级别 x,格式化整个工作表。
'接下来,它显示一个大纲级别(x - 1),格式化整个工作表。
'最后,它删除了非活动摘要任务的格式。
'准备
On Error GoTo ErrorHandler
保存原始设置
大纲显示所有任务
FilterApply Name:="摘要任务"
选择表
'格式化所有行,从这个大纲级别开始
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel9
Font32Ex CellColor:=level9
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel8
Font32Ex CellColor:=level8
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel7
Font32Ex CellColor:=level7
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel6
Font32Ex CellColor:=level6
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel5
Font32Ex CellColor:=level5
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel4
Font32Ex CellColor:=level4
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel3
Font32Ex CellColor:=level3
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel2
Font32Ex CellColor:=level2
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel1
Font32Ex CellColor:=level1
If Len(font1) > 0 Then Font32Ex 颜色:=font1
'从非活动的摘要任务中删除格式
屏幕更新 = 假
大纲显示所有任务
FilterEdit Name:="Inactive Summary Tasks", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Summary", test:="equals", Value:="yes", ShowInMenu:=False , ShowSummaryTasks:=假
FilterEdit Name:="Inactive Summary Tasks", TaskFilter:=True, FieldName:="", NewFieldName:="Active", test:="equals", Value:="no", Operation:="And", ShowSummaryTasks :=假
FilterApply Name:="非活动摘要任务"
选择表
编辑清除格式
屏幕更新 = 真
'清理
FilterApply 名称:="所有任务"
恢复原始设置
级联大纲
退出子
错误处理程序:
处理错误
结束子
公共子级联大纲()
出错时继续下一步
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel9
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel8
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel7
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel6
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel5
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel4
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel3
OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel2
SelectRow Row:=1, rowrelative:=False
错误转到 0
结束子
私有子处理错误()
选择 Case Err.Number
案例 91
MsgBox "您选择的第一行缺少任务名称。", vbCritical
案例 424
MsgBox "您选择的行可能缺少任务名称。", vbCritical
案例 1100
MsgBox "此视图和表格组合没有可用的大纲。请尝试转到 " & _
“查看>>数据组:大纲。如果大纲显示为灰色,请尝试单击任务名称。” &_
vbNewLine & vbNewLine & "此错误通常发生在选择时间线或详细信息窗格时。", _
vbCritical,“糟糕!大纲不可用”
案例 1101
MsgBox "尝试在任务表视图上使用这个宏。" & vbNewLine & vbNewLine & _
"错误#" & Str(Err.Number) & " - " & Err.Description, vbCritical, "无效视图"
其他情况
MsgBox "Error#" & Str(Err.Number) & " - " & Err.Description & vbNewLine _
& "行:" & Erl & vbNewLine _
, vbCritical
结束选择
结束子