VBA:如何循环遍历 MS Project 中的所有甘特条形样式

问题描述 投票:0回答:1

我目前正在开发一个 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 中是否有甘特栏样式对象之类的东西?

vba ms-project
1个回答
0
投票

Project VBA 中是否有甘特栏样式对象之类的东西?

不幸的是,这是一个 api 不完整的示例。甘特条形图没有集合对象。


相反,专注于解决原来的问题。有很多方法可以将数据导入现有项目(或从模板创建的新文件),例如:

  • 导入到新项目中,然后复制到现有项目
  • 使用vba一点点更新项目
  • 先将 xml 数据放入 Excel,然后使用导入向导

至少其中之一比在 VBA 中构建新的甘特条更好。

© www.soinside.com 2019 - 2024. All rights reserved.