程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 如何通過VBA操縱Microsoft Project

如何通過VBA操縱Microsoft Project

編輯:.NET實例教程

有時我們需要通過程序來操縱MS Project(我們公司曾需要將公司已有的項目管理平台中的任務導入MS Project),Project與其他的微軟Office軟件,Word、Excel類似,都可通過VBA來對其操作。

下面是我通過VB.Ne寫得t調用VBA操縱MS Project的一個通用類。
該類實現了創建|打開Project文件,添加任務,升級|降級任務,保存Project等常用功能。

詳情請看注釋。

Public Class Project
    ''041201
    Dim mPrjApp As MSProject.Application''在VB.Net中引用MSProject類庫
    Dim mRow As Integer = 0''記錄Project中任務的行號

    Public Sub New()
        mPrjApp = New MSProject.Application
    End Sub

    Public Sub NewProject()
        mPrjApp.FileNew()''新建一個Project文件
    End Sub

    ''Project可以另存為一個數據庫,如果存儲為數據庫,我們可以通過ODBC來直接打開這個Project文件
    ''當然如果你對Project這個數據庫比較熟悉,也可以直接操數據庫中的數據來實現對Project文件的修改,微軟雖然提供了數據庫的結構說明,但不是很詳盡,這方面的官方資料相對很少。後續我將寫一篇關於通過ODBC操縱Project數據庫的文章。
    Public Sub Open(ByVal ODBCName As String, ByVal ProjectName As String)
        mPrjApp.FileOpen("<" + ODBCName + ">\" + ProjectName)
    End Sub

    Public Sub NewProject(ByVal tmpFileName As String)
        Dim TemplateName As Object = tmpFileName
        mPrjApp.FileNew(False, TemplateName)
    End Sub

    Public Sub SaveAs(ByVal FilePath As String)
        If IO.File.Exists(FilePath) Then
            IO.File.Delete(FilePath)
        End If
        mPrjApp.FileSaveAs(FilePath, MSProject.PjFileFormat.pjMPP)
    End Sub

    Public Sub AddTask(ByVal TaskName As String, ByVal StartDate As String, ByVal FinishDate As String, Optional ByVal Resource As String = "")
        mPrjApp.SelectTaskFIEld(mRow, "名稱")
        mPrjApp.SetTaskFIEld("名稱",

TaskName)
        mPrjApp.SetTaskFIEld("開始時間", StartDate)
        mPrjApp.SetTaskFIEld("完成時間", FinishDate)
        mPrjApp.SetTaskFIEld("資源名稱", Resource)''這裡的資源表示將任務分配給誰
        mRow = 1
    End Sub

    Public Sub Degrade()
        mPrjApp.OutlineIndent(1)
    End Sub

    Public Sub Upgrade()
        mPrjApp.OutlineOutdent(1)
    End Sub

    Public Sub Close()
        mPrjApp.FileCloseAll(MSProject.PJSaveType.pjDoNotSave)
        mPrjApp.Quit()
    End Sub
End Class

該類使用例子(C#):
    Project prj = new Project();
    prj.NewProject("D:\Test\Test.mpp");
    prj.AddTask("任務一","2004-08-09","2004-09-09","小明");
    prj.SaveAs("D:\Test\Test.mpp");
    prj.Close();

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved