下面是我用VB寫的壹個通用類。Ne給VBA打電話操縱MS項目。
這個類實現了創建和打開項目文件、添加任務、升級和降級任務以及保存項目等常見功能。
詳情請看註意事項。
公共類項目
作者:孫041201
Dimmprjapp作為MSProject。“應用程序”是指VB.Net的msproject類庫。
“Dim mRow As Integer = 0”記錄項目中任務的行號。
公共子新()
mPrjApp =新的MSProject。application end Sub public Sub new project()
MPrjApp。FileNew()'創建壹個新的項目文件結束子'項目可以保存為壹個數據庫。如果保存為數據庫,我們可以通過ODBC直接打開這個項目文件。
當然,如果您熟悉數據庫項目,也可以直接操縱數據庫中的數據來修改項目文件。雖然微軟已經提供了數據庫結構的描述,但是並不是很詳細,這方面的官方資料也相對較少。後面我會寫壹篇關於通過ODBC操縱項目數據庫的文章。
Public Sub Open(ByVal ODBCName為字符串,ByVal ProjectName為字符串)
mPrjApp。文件打開(" <+odbc name+" & gt;\ "+project name)End SubPublic Sub new project(ByVal tmpFileName作為字符串)
dim template name As Object = tmpFileName
mPrjApp。FileNew(False,template name)End Sub public Sub save As(ByVal file path As String)
如果木衛壹。文件存在(文件路徑)
IO。file . Delete(file path)End IfmPrjApp。文件另存為(FilePath,MSProject。pjfile format . pjmpp)End Sub public Sub add task(ByVal TaskName為字符串,ByVal StartDate為字符串,ByVal FinishDate為字符串,可選的ByVal Resource為String = " ")
MPrjApp。選擇任務字段(mRow,“名稱”)
MPrjApp。SetTaskField("名稱",任務名稱)
MPrjApp。SetTaskField("開始時間",開始日期)
MPrjApp。SetTaskField("完成日期")
MPrjApp。SetTaskField("資源名",Resource)'這裏的資源表示任務分配給誰,mrow = 1 end sub public sub degradation()。
mPrjApp。outline indent(1)End Sub public Sub Upgrade()
mPrjApp。outline outent(1)End Sub public Sub Close()
mPrjApp。FileCloseAll(MSProject。PjSaveType.pjDoNotSave)
MPrjApp。Quit()End SubEnd類這個類的例子(C#):
Project prj = new Project();
prj。new project(" D:\ Test \ Test . MPP ");