Get started programming VSTO Add-ins
Applies to: Visual Studio Visual Studio for Mac Visual Studio Code
VSTO relies on the .NET Framework. COM add-ins can also be written with the .NET Framework. Office Add-ins cannot be created with .NET Core and .NET 5+, the latest versions of .NET. This is because .NET Core/.NET 5+ cannot work together with .NET Framework in the same process and may lead to add-in load failures. You can continue to use .NET Framework to write VSTO and COM add-ins for Office. Microsoft will not be updating VSTO or the COM add-in platform to use .NET Core or .NET 5+. You can take advantage of .NET Core and .NET 5+, including ASP.NET Core, to create the server side of Office Web Add-ins.
You can use VSTO Add-ins to automate Microsoft Office applications, extend features of the application, and customize the user interface (UI) of the application. For information about how VSTO Add-ins compare to other types of Office solutions you can create by using Visual Studio, see Office solutions development overview (VSTO).
Applies to: The information in this topic applies to VSTO Add-in projects. For more information, see Features available by Office application and project type.
Create VSTO Add-in projects
Create VSTO Add-in projects by using one of the VSTO Add-in project templates in the New Project dialog box. These templates include required assembly references and project files. Visual Studio provides VSTO Add-in project templates for most applications in Office.
For more information about how to create a VSTO Add-in project, see How to: Create Office projects in Visual Studio. For more information about the project templates, see Office project templates overview.
Develop VSTO Add-in projects
When you create a VSTO Add-in project, Visual Studio automatically creates a ThisAddIn.vb (in Visual Basic) or ThisAddIn.cs (in C#) code file. This file contains the
ThisAddIn class, which provides the foundation for your VSTO Add-in. You can use members of this class to run code when the VSTO Add-in is loaded or unloaded, to access the object model of the host application, and to extend features of the application. For more information, see Program VSTO Add-Ins.
Automate applications by using the Object models
The object models of Microsoft Office applications expose many types that you can program against in a VSTO Add-in. You can use these types to automate the application. For example, you can programmatically create and send an e-mail message in Outlook, or you can open a document and add content in Word. For more information about how to access the object model of the host application in code, see Program VSTO Add-Ins.
For more information about the object models of specific Microsoft Office applications, see the following topics:
Customize the user interface of applications
There are several different ways to customize the UI of the host application by using a VSTO Add-in:
For Excel and Word, you can add managed controls to documents. For more information, see Extend Word documents and Excel workbooks in VSTO Add-ins at run time.
You can customize the Ribbon if the application supports it. For more information, see Ribbon overview.
You can create a custom task pane if the application supports it. For more information, see Custom task panes.
For Outlook, you can create a custom form region. For more information, see Create Outlook form regions.
For all Microsoft Office applications, you can display Windows Forms in your VSTO Add-in.
For more information about how to customize the UI of Microsoft Office applications, see Office UI customization.
To learn how to create VSTO Add-ins, see the following walkthroughs:
These walkthroughs introduce you to the Office development tools in Visual Studio and the programming model for VSTO Add-ins.
For a list of topics that walk you through some of the common tasks in Office projects, see Common tasks in Office programming.