Using Scripts to Manage Project's Calculation Options
Sample VBScript scripts that demonstrate how you can both retrieve and configure the Microsoft Project 2003 Calculation options.
Mapping the Dialog Box to the Project Object Model
The options referenced in the following scripts correspond to the options found on the Calculation tab of the Options dialog box. To access these options in Microsoft Project 2003, click Tools, click Options, and then click the Calculation tab. A mapping between the options available in this dialog box and the Microsoft Project object model is shown below.
Note that the item shown in orange does not have a corresponding property in the Project object model. The current value for Inserted projects are calculated like summary tasks cannot be returned using the script for retrieving property values; however, the value for this item can be configured using the OptionsCalculation method. A sample script using OptionsCalculation is included on this page.
The scripts shown on this page were tested using Microsoft Project 2003. At least some of the functionality is likely to work on any version of Microsoft Project that supports Visual Basic for Applications (VBA); however, the scripts have not been tested using any of these other versions.
Sample Code for Retrieving Values
Sample script that retrieves the configuration information found on the Calculations tab in the Options dialog box in Microsoft Project 2003.
Const pjDoNotSave = 0 Set objProject = CreateObject("MSProject.Application") Set colProjects = objProject.Projects Set objDoc = colProjects.Add() Wscript.Echo "Calculation mode: " & objProject.Calculation Wscript.Echo "Updating task status updates resource status: " & objDoc.AutoTrack Wscript.Echo "Move end of completed parts after status date back to status date: " _ & objDoc.MoveCompleted Wscript.Echo "And move start of remaining parts back to status date: " _ & objDoc.AndMoveRemaining Wscript.Echo "Move start of remaining parts before status date forward to status date: " _ & objDoc.MoveRemaining Wscript.Echo "And move end of completed parts forward to status date: " & _ objDoc.AndMoveCompleted Wscript.Echo "Edits to total actual cost will be spread to the status date: " & _ objDoc.SpreadCostsToStatusDate Wscript.Echo "Edits to total task % complete will be spread to the status date: " & _ objDoc.SpreadPercentCompleteToStatusDate Wscript.Echo "Actual costs are always calculated by Microsoft Office Project: " _ & objDoc.AutoCalcCosts Wscript.Echo "Default fixed costs accrual: " & objDoc.DefaultFixedCostAccrual Wscript.Echo "Calculate multiple critical paths: " & objDoc.MultipleCriticalPaths Wscript.Echo "Tasks are critical if slack is less than or equal to: " & _ objDoc.ShowCriticalSlack objProject.Quit(pjDoNotSave)
Sample Code for Modifying Values
Sample script that disables the option Actual costs are always calculated by Microsoft Office Project..
Const pjDoNotSave = 0 Set objProject = CreateObject("MSProject.Application") Set colProjects = objProject.Projects Set objDoc = colProjects.Add() objDoc.AutoCalcCosts = FALSE objProject.Quit(pjDoNotSave)
Sample Code for Modifying Values Without Corresponding Properties
Sample script that disables the Inserted projects are calculated like summary tasks option. The commas preceding the value FALSE represent other values that can be configured using this method; the blank parameters instruct the method to leave existing values for these items as-is.
Set objProject = CreateObject("MSProject.Application") Set colProjects = objProject.Projects Set objDoc = colProjects.Add() errReturn = objProject.OptionsCalculation(,,,,,,,,,FALSE) objProject.Quit(pjDoNotSave)
The sample scripts are not supported under any Microsoft standard support program or service. The sample scripts are provided AS IS without warranty of any kind. Microsoft further disclaims all implied warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages.
- Calendar Options
- Collaborate Options
- Earned Value Options
- Edit Options
- General Options
- Interface Options
- Save Options
- Schedule Options
- Security Options
- Spelling Options
- View Options