Visual Studio Tools for Office (VSTO)


This is my VSTO page. Here I link to some of the resources I use for working with Visual Studio Tools for Office. Plus a few links to Office Business Applications (OBA) items of interest. I also blog about VSTO (you can view the VSTO posts here) or subscribe to the feed: VSTO feed

VSTO - Visual Studio Tools for Office

A short history of VSTO

VSTO is Microsoft’s tool set for building applications that run in Microsoft Office (eg Word, Excel, Outlook, PowerPoint).

Originally a replacement for VBA (Visual Basic for Applications) that was delivered in Excel and Word, VSTO was made available in its first version approximately around the start of 2004, targeting the Office 2003 platform. Development was performed in Visual Studio 2003 but was referred to as VSTO 2003 (or sometimes VSTO 1.0). It was an add-on to VS.NET 2003 and wasn’t free (costing around $450).

The second version, referred to as VSTO 2005 was a big update that added numerous advances and enhancements (eg support for Outlook). It was delivered as a special SKU of VS 2005 (my understanding is it was not available as a separate download, but I could be wrong).

The third version, confusingly titled VSTO 2005 Second Edition (VSTO 2005 SE) was delivered in 2007 and focused on targeting the Office 2007 platform. It was a freely downloadable add-on for VS 2005.

This SE version was tweaked significantly and included as part of Visual Studio 2008 (released in November 2007), and is referred to as VSTO V3 (even though it is the fourth version of the product). VSTO 2008 overcomes many of the deployment and security hurdles found in previous versions, and adds a number of design helpers (eg visual editing of Office 2007 toolbars, support for SharePoint 3.0 Workflow, etc).

[The reason the version numbers are confusing is because in Vx terms they refer to the runtime used, not so much the tooling released. So, technically speaking VSTO 2005 and VSTO 2005 SE both use the same V2 runtime. VSTO in Visual Studio 2008 is using V3 of the runtime, even though it is the fourth release of the product.]

The aim of VSTO is to provide tools for developers to build on top of Office as a platform. Using VB.NET and/or C#, developers can use Visual Studio to build add-ins for most of the Office 2003 and 2007 applications, including Word, Excel, Outlook, PowerPoint, InfoPath and Visio. SharePoint and Groove development is also possible, although not directly targeted.

I personally believe the time for VSTO has come. I say this for two reasons:

  1. Because the Office platform is now at a point where it is not only feature rich, but easily scalable as a platform (especially via it’s SharePoint strategy).
  2. VSTO has a comprehensive feature set, and has addressed many of the deployment and security aspects that hindered it predecessors.

Trivia: Was originally pronounced ‘visto’ but was discouraged once Vista came out in order to reduce the confusion between them in casual conversation. Lately ‘visto’ has re-entered ‘accepted’ conversation :-)

See also my blog post: 2008: The Year of VSTO. For a description of OBA you may find my post on Office Business Applications useful. And here’s a post covering the basics of VSTO.



VSTO Forum
Office Zealot – VSTO
Outlook Code and Forum
Ken Slovak (Outlook)
OBA Central
Office Business Applications Developer Portal
Office Business Applications FAQ
Office Business Applications Case Studies
See here for my full list of OBA resources

Specific links
How Do I Videos – Visual Studio Tools for Office
Andrew Coates list of VSTO resources (see also his VSTO deployment list)
VSTO Architecture (V3)

Dmitrv Streblechenko (including Redemption and OutlookSpy)
Office 2007 PIAs

VSTO bloggers
VSTO Blog (this includes Mary Lee and Christen Boyd posts)
Andrew Whitechapel
Chris Castillo
Eric Carter
Ken Getz
John R Durant
Kathleen McGrath
Kris Makey (focuses on deployment)
Mike Hernandez
Misha Shneerson
Nikhil Khandelwal (focuses on SharePoint workflow and VSTO)
Paul Ballard
Paul Stubbs
Tim Huckaby
OBA Team Blog
Steve Fox


  • We need to create a task pane that can use smart tags to identify certain words and when a word is clicked provide a definition stored in an access database. We would also like to be able to do that with text boxes inside Access forms.

    There are so many methods and versions of VSTO, word and VS we’re not sure where to start. None of the sample code works (prob because we are using Word 2010 and VS2010

    Any suggestion as to where we should start?

  • Hi

    I have a problem with a app.

    This app is done with vsto and c# and openxml 2.0, this App works fine with MS Word 2010, but with MS Word 2013 not.

    When Open the Word Document in Office 2013, i select a text and change me the language in spelling check, From Spanish to English.

    Please help with that, already i have done:

    – In code behind, i assigned <>.Range.LanguageID = WdLanguageID.wdMexicanSpanish; and
    <>.Range.NoProofing = true;
    – In the template, i assigned the language to the spelling check

    Thanks in Advance

    • Hi Emmanuel, it’s a long time since I’ve done any VSTO coding, so unfortunately I can’t help you with this. I’d suggest trying on one of the MSDN VSTO forums, you’ll likely have more response there. Best of luck.