取消保护Microsoft Project VBA

时间:2014-03-12 12:31:25

标签: vba winapi microsoft-project-vba

我已修改联合国保护Excel VBA项目的代码,以便通过以下链接使用Microsoft Project。

Unprotect VBProject from VB code

但是在MS Project中总是有一个Global.mpt(我的代码从这里运行)以及下面的行执行时

projAp.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute

它始终打开Global.mpt文件的VBA项目属性。

如何选择我的项目计划的VBA项目属性? 是否有Windows API函数可以让我选择屏幕主机中显示的第二个VBA项目。选择proejct后启动FindControl命令应启动相应的VBA项目属性(手动尝试此操作)。

Screen Shot of Project VBA

2 个答案:

答案 0 :(得分:1)

诀窍是切换到“项目”窗格,然后键入"键入"项目名称的第一个字母;我建议你尽可能从默认的VBAProject中更改它。

SendKeys "%{F11}"
SendKeys "^r"
SendKeys "V"
DoEvents
VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute

答案 1 :(得分:0)

projAp.VBE.CommandBars(1)。

您的代码始终使用应用程序对象,因此始终查看Global.mpt文件。尝试:

ActiveProject.VBProject.VBE.CommandBars(1)

它应该只返回项目的项目。