我目前正在开发一个 VBA 宏,它将在 MS Project 中配置甘特条形样式。结果我不能简单地使用模板,因为我必须从在线应用程序导入 XML 数据,并且导入现有项目文件会弄乱大纲级别。所以我必须将它导入到一个新项目中,然后重新配置外观和栏样式。
Project VBA 在 Application 对象中有一系列 GanttBarStyle 方法。但我似乎找不到包含条形样式的对象,我可以简单地迭代它,这将给我所有条形样式的计数等。与任务对象类似的东西:您使用该对象来获取计数,然后使用该计数循环或简单地循环单个任务对象等。
例如,假设我想完全删除当前视图的所有栏样式。我想出的最多的是:
Sub barex()
For a = 1 To 200
On Error GoTo RoutineEnd
result = Application.GanttBarStyleDelete(1)
Next
RoutineEnd:
End Sub
这看起来是一种相当混乱的方法...只需删除第一个条形样式,200 次,如果出现错误,请中断循环。
当然,如果我需要检查给定名称、栏位置或类似内容的各个栏样式,那么类似的东西并没有帮助。
Project VBA 中是否有甘特栏样式对象之类的东西?
Project VBA 中是否有甘特栏样式对象之类的东西?
不幸的是,这是一个 api 不完整的示例。甘特条形图没有集合对象。
相反,专注于解决原来的问题。有很多方法可以将数据导入现有项目(或从模板创建的新文件),例如:
至少其中之一比在 VBA 中构建新的甘特条更好。