While VBA is document-centric and uses "unmanaged code," VSTO (Visual Studio Tools for Office) allows developers to build robust, application-level add-ins using the .
| Version | Key Considerations in the Text | | :--- | :--- | | | Baseline object model; use of CommandBars (pre-Ribbon). | | Project 2000–2003 | Introduction of Application and Project objects; VBA6 features. | | Project 2007 | New task and resource objects; early changes for the Ribbon interface. | | Project 2010 | Full Ribbon support; Backstage view changes; 64-bit VBA7 declarations. |
End Sub
Microsoft Project has long been the industry standard for project management software, providing powerful tools to schedule tasks, manage resources, and track budgets. However, every project manager eventually encounters a workflow or reporting requirement that the out-of-the-box features cannot satisfy. This is where automation becomes essential. For over a decade, Visual Basic for Applications was the primary vehicle for this customization, spanning versions from Project 98 to Project 2010, before the modern era of Visual Studio Tools for Office began to gain significant traction. The Evolution of Project Automation
For over a decade, from the classic interface of Microsoft Project 98 to the ribbon-driven workflow of Project 2010, one tool remained the silent powerhouse behind countless successful project management offices: . While modern schedulers now look toward cloud solutions and Power Automate, the legacy versions of Microsoft Project (98, 2000, 2003, 2007, and 2010) still drive critical infrastructure, construction, and IT portfolios worldwide. While VBA is document-centric and uses "unmanaged code,"
Sub ListSummaryTasks() Dim t As Task Dim output As String For Each t In ActiveProject.Tasks If Not t Is Nothing Then If t.Summary = True Then output = output & t.Name & " (Duration: " & t.Duration & ")" & vbCrLf End If End If Next t
private void btnAddSummary_Click(object sender, RibbonControlEventArgs e) | | Project 2007 | New task and
The Task object is where the magic happens. In Project 98, iterating through tasks could be slow if done inefficiently. By Project 2010, processors were faster, but best practices remained the same: avoid Select statements.