我已經修改了聯合國保護Excel VBA項目的代碼,以便從下面的鏈接中使用Microsoft Project。取消保護Microsoft Project VBA
Unprotect VBProject from VB code
但是在MS Project中總有一個的Global.mpt(我的代碼從這裏運行),當低於行執行
projAp.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
它總是打開全球的VBA項目屬性.mpt文件。
如何選擇我的項目計劃的VBA項目屬性? 是否有Windows API函數可讓我選擇屏幕主機中顯示的第二個VBA項目。選擇項目後啓動FindControl命令應啓動相應的VBA項目屬性(手動嘗試此操作)。
我不確定我的理解,但我認爲你需要通過VBProjects迭代來獲得正確的引用,因爲你正在將你的projAp限定爲VBIDE.Project可能 – 2014-03-12 12:34:30
@mehow我現在試過了: 'debug。打印projAp.ActiveProject.VBProject.VBE.VBProjects.Item(1).FileName' _C:\ Users \ IBM_ADMIN \ AppData \ Roaming \ Microsoft \ MS Project \ 14 \ 1033 \ Global.mpt_ 'debug.Print projAp。 ActiveProject.VBProject.VBE.VBProjects.Item(2).FileName' _C:\用戶\ IBM_ADMIN \桌面\項目計劃v2.46.mpt_ 'projAp.VBE.VBProjects.Item(2).VBE.CommandBars (1).FindControl(ID:= 2578,recursive:= True).Execute' 即使我明確地選擇第二個VBAProject,如第一個VBA項目屬性上方的代碼片段中所示,只會再次打開。 – RamY