Share via


Edit a Project Task

To edit a Project Task object programmatically, do the following:

  1. Select the object.
  2. Assign new values to those properties that you want to edit.
  3. Invoke the Save method on the object to save the changes.

The following C# and Visual Basic for Applications (VBA) examples show how to edit a Project Task object.

C#

  private void UpdateProjectTask()
        {

            Outlook.ApplicationClass _app = new Outlook.ApplicationClass();
            Outlook.Application olApp = (Outlook.Application)_app;
            Outlook.NameSpace olNameSpace = _app.GetNamespace("MAPI");
            Outlook.Folders folders = olNameSpace.Session.Folders;
            Outlook.Folder bcmRootFolder = (Outlook.Folder)folders["Business Contact Manager"];
            
            Outlook.Folder projects = (Outlook.Folder)bcmRootFolder.Folders["Business Projects"];

            Outlook.Folder projectTasksFolder = (Outlook.Folder)projects.Folders["Project Tasks"];

            string strQuery = "[Subject] = 'Task 1 for Sales Project with Wide World Importers'";

            Outlook.TaskItem projectTaskItem = (Outlook.TaskItem)projectTasksFolder.Items.Find(strQuery);
            if (projectTaskItem != null)
            {
                if (projectTaskItem.UserProperties["Activity Priority"] == null)
                {
                    Outlook.UserProperty userProp = projectTaskItem.UserProperties.Add("Activity Priority", Microsoft.Office.Interop.Outlook.OlUserPropertyType.olText, false, false);
                    userProp.Value = "Low";
                }
                else
                {
                    projectTaskItem.UserProperties["Activity Priority"].Value = "Low";
                }
                projectTaskItem.Save();
            }

            else
            {
                Console.WriteLine("Project Task not found");
            }

        }


VBA

  Sub UpdateProjectTask()

   Dim olApp As Outlook.Application
   Dim objNS As Outlook.NameSpace
   Dim olFolders As Outlook.Folders
   Dim bcmRootFolder As Outlook.Folder
   Dim bcmProjFolder As Outlook.Folder
   Dim bcmProjectTasksFolder As Outlook.Folder
   Dim existProjectTask As Outlook.TaskItem
   Dim userProp As Outlook.UserProperty

   Set olApp = CreateObject("Outlook.Application")
   Set objNS = olApp.GetNamespace("MAPI")
   Set olFolders = objNS.Session.Folders
   Set bcmRootFolder = olFolders("Business Contact Manager")
   Set bcmProjFolder = bcmRootFolder.Folders("Business Projects")
   Set bcmProjectTasksFolder = bcmProjFolder.Folders("Project Tasks")

   Set existProjectTask = bcmProjectTasksFolder.Items.Find("[Subject] = 'Task 1 for Sales Project with Wide World Importers'")
   If Not TypeName(existProjectTask) = "Nothing" Then

      If (existProjectTask.UserProperties("Activity Priority") Is Nothing) Then
        Set userProp = existProjectTask.UserProperties.Add("Activity Priority", olText, False, False)
        userProp.Value = "High"
      Else
        existProjectTask.ItemProperties("Activity Priority").Value = "High"
      End If
      existProjectTask.Save

   Else

      MsgBox ("Project Task not found")

   End If

   Set existProjectTask = Nothing
   Set bcmProjFolder = Nothing
   Set bcmProjectTasksFolder = Nothing
   Set bcmRootFolder = Nothing
   Set olFolders = Nothing
   Set objNS = Nothing
   Set olApp = Nothing

End Sub


See Also

Create a Project Task | Select a Project Task | Delete a Project Task | 2007 Office System: Updated Developer Content