Getting Started Programming Application-Level Add-Ins
You can use 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 add-ins compare to other types of Office solutions you can create by using Visual Studio, see Office Solutions Development Overview.
Applies to: The information in this topic applies to application-level projects for Microsoft Office 2013 and Microsoft Office 2010. For more information, see Features Available by Office Application and Project Type.
Creating Add-in Projects
Create add-in projects by using one of the Office add-in project templates in the New Project dialog box. These templates include required assembly references and project files. Visual Studio provides add-in project templates for most applications in Microsoft Office 2010.
If you download the Microsoft Office Developer Tools for Visual Studio 2012, you can use project templates that target Microsoft Office 2013. For more information, see Configuring a Computer to Develop Office Solutions.
For more information about how to create an add-in project, see How to: Create Office Projects in Visual Studio. For more information about the project templates, see Office Project Templates Overview.
Developing Add-in Projects
When you create an 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 add-in. You can use members of this class to run code when the 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 Programming Application-Level Add-Ins.
Automating Applications by Using the Object Models
The object models of Microsoft Office applications expose many types that you can program against in an 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 Programming Application-Level Add-Ins.
For more information about the object models of specific Microsoft Office applications, see the following topics:
Customizing the User Interface of Applications
There are several different ways to customize the UI of the host application by using an add-in:
For Excel and Word, you can add managed controls to documents. For more information, see Extending Word Documents and Excel Workbooks in Application-Level 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 Creating Outlook Form Regions.
For all Microsoft Office applications, you can display Windows Forms in your add-in.
For more information about how to customize the UI of Microsoft Office applications, see Office UI Customization.
Next Steps
To learn how to create application-level add-ins, see the following walkthroughs:
Walkthrough: Creating Your First Application-Level Add-in for Excel
Walkthrough: Creating Your First Application-Level Add-in for Outlook
Walkthrough: Creating Your First Application-Level Add-in for PowerPoint
Walkthrough: Creating Your First Application-Level Add-in for Project
Walkthrough: Creating Your First Application-Level Add-in for Word
These walkthroughs introduce you to the Office development tools in Visual Studio and the programming model for application-level 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.
See Also
Tasks
How to: Create Office Projects in Visual Studio
Concepts
Writing Code in Office Solutions
Architecture of Application-Level Add-Ins