Home > Store

Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath

Register your product to gain access to bonus material or receive a coupon.

Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath


  • Your Price: $51.99
  • List Price: $64.99
  • Usually ships in 24 hours.



Direct from two of the lead developers of the product comes the definitive guide to using Visual Studio Tools for Office (VSTO) 2005.

° VSTO 2005 is a major new developer tool from Microsoft, and is a huge improvement over the first version. Usage should increase dramatically.

° Authors are two of the lead developers of VSTO, and the entire VSTO team is supporting the book.

° Both an overview of the product as well as a practical tutorial.

° Will be the first book on VSTO.


  • Copyright 2006
  • Dimensions: 7" x 9-1/4"
  • Pages: 1008
  • Edition: 1st
  • Book
  • ISBN-10: 0-321-33488-4
  • ISBN-13: 978-0-321-33488-6

"With the application development community so focused on the Smart Client revolution, a book that covers VSTO from A to Z is both important and necessary. This book lives up to big expectations. It is thorough, has tons of example code, and covers Office programming in general terms— topics that can be foreign to the seasoned .NET developer who has focused on ASP.NET applications for years. Congratulations to Eric Lippert and Eric Carter for such a valuable work!"

—Tim Huckaby, CEO, InterKnowlogy, Microsoft regional director

"This book covers all of the ins and outs of programming with Visual Studio Tools for Office in a clear and concise way. Given the authors' exhaustive experiences with this subject, you can't get a more authoritative description of VSTO than this book!"

—Paul Vick, technical lead, Visual Basic .NET, Microsoft Corporation

"Eric and Eric really get it. Professional programmers will love the rich power of Visual Studio and .NET, along with the ability to tap into Office programmability. This book walks you through programming Excel, Word, InfoPath, and Outlook solutions."

—Vernon W. Hui, test lead, Microsoft Corporation

"This book is an in-depth, expert, and definitive guide to programming using Visual Studio Tools for Office 2005. It is a must-have book for anyone doing Office development."

—Siew Moi Khor, programmer/writer, Microsoft Corporation

"We don't buy technical books for light reading; we buy them as a resource for developing a solution. This book is an excellent resource for someone getting started with Smart Client development. For example, it is common to hear a comment along the lines of, 'It is easy to manipulate the Task Pane in Office 2003 using VSTO 2005,' but until you see something like the example at the start of Chapter 15, it is hard to put 'easy' into perspective. This is a thorough book that covers everything from calling Office applications from your application, to building applications that are Smart Documents. It allows the traditional Windows developer to really leverage the power of Office 2003."

—Bill Sheldon, principal engineer, InterKnowlogy, MVP

"Eric Carter and Eric Lippert have been the driving force behind Office development and Visual Studio Tools for Office 2005. The depth of their knowledge and understanding of VSTO and Office is evident in this book. Professional developers architecting enterprise solutions using VSTO 2005 and Office System 2003 now have a new weapon in their technical arsenal."

—Paul Stubbs, program manager, Microsoft Corporation

"This book is both a learning tool and a reference book, with a richness of tables containing object model objects and their properties, methods, and events. I would recommend it to anyone considering doing Office development using the .NET framework; especially people interested in VSTO programming."

—Rufus Littlefield, software design engineer/tester, Microsoft Corporation

Visual Studio Tools for Office is both the first and the definitive book on VSTO 2005 programming, written by the inventors of the technology. VSTO is a set of tools that allow professional developers to use the full power of Visual Studio .NET and the .NET Framework to put code behind Excel 2003, Word 2003, Outlook 2003, and InfoPath 2003. VSTO provides functionality never before available to the Office developer: data binding and data/view separation, design-time views of Excel and Word documents inside Visual Studio, rich support for Windows Forms controls in a document, the ability to create custom Office task panes, server-side programming support against Office, and much more.

Carter and Lippert cover their subject matter with deft insight into the needs of .NET developers learning VSTO. This book

  • Explains the architecture of Microsoft Office programming and introduces the object models

  • Teaches the three basic patterns of Office solutions: Office automation executables, Office add-ins, and code behind a document

  • Explores the ways of customizing Excel, Word, Outlook, and InfoPath, and plumbs the depths of programming with their events and object models

  • Introduces the VSTO programming model

  • Teaches how to use Windows Forms in VSTO and how to work with the Actions Pane

  • Delves into VSTO data programming and server data scenarios

  • Explores .NET code security and VSTO deployment

Advanced material covers working with XML in Word and Excel, developing COM add-ins for Word and Excel, and creating Outlook add-ins with VSTO.

© Copyright Pearson Education. All rights reserved.

Sample Content

Online Sample Chapters

Introduction to Office Solutions Using Visual Studio Tools for Office

Introduction to Office Solutions Using Visual Studio Tools for Office

Downloadable Sample Chapter

Download the Sample Chapter related to this title.

Table of Contents

About the Authors.





1. An Introduction to Office Programming.

2. Introduction to Office Solutions.


3. Programming Excel.

4. Working with Excel Events.

5. Working with Excel Objects.

6. Programming Word.

7. Working with Word Events.

8. Working with Word Objects.

9. Programming Outlook.

10. Working with Outlook Events.

11. Working with Outlook Objects.

12. Introduction to InfoPath.


13. The VSTO Programming Model.

14. Using Windows Forms in VSTO.

15. Working with Actions Pane.

16. Working with Smart Tags in VSTO.

17. VSTO Data Programming.

18. Server Data Scenarios.

19. .NET Code Security.

20. Deployment.


21. Working with XML in Excel.

22. Working with XML in Word.

23. Developing COM Add-Ins for Word and Excel.

24. Creating Outlook Add-Ins with VSTO.



In 2002, the first release of Visual Studio .NET and the .NET Framework was nearing completion. A few of us at Microsoft realized that Office programming was going to miss the .NET wave unless we did something about it.

What had come before was Visual Basic for Applications (VBA), a simple development environment integrated into all the Office applications. Each Office application had a rich object model that was accessed via a technology known as COM. Millions of developers identified themselves as "Office developers" and used VBA and the Office COM object models to do everything from automating repetitive tasks to creating complete business solutions that leveraged the rich features and user interface of Office. These developers realized that their users were spending their days in Office. By building solutions that ran inside of Office, they not only made their users happy, they were also able to create solutions that did more and cost less by reusing functionality already available in the Office applications.

Unfortunately, because of some limitations of VBA, Office programming was starting to get a bad rap. Solutions developed in VBA by small workgroups or individuals would gain momentum and a professional developer would have to take them over and start supporting them. To a professional developer, the VBA environment felt simple and limited, and of course, it enforced a single language: Visual Basic. VBA embedded code in every customized document, which made it hard to fix bugs and update solutions because a bug would get replicated in documents across the enterprise. Security weaknesses in the VBA model led to a rash of worms and macro viruses that made enterprises turn VBA off.

Visual Studio .NET and the .NET Framework provided a way to address all these problems. A huge opportunity existed to not only combine the richness of the new .NET Framework and developer tools with the powerful platform that Office has always provided for developers but to also solve the problems that were plaguing VBA. The result of this realization was Visual Studio Tools for Office (VSTO).

The first version of VSTO was simple, but it accomplished the key goal of letting professional developers use the full power of Visual Studio .NET and the .NET Framework to put code behind Excel 2003 and Word 2003 documents and templates. It let professional developers develop Office solutions in VB.NET and C#. It solved the problem of embedded code by linking a document to a .NET assembly instead of embedding it in the document. It also introduced a new security model that used .NET code-access security to prevent worms and macro viruses.

The second version of VSTO, known as VSTO 2005, the version of VSTO covered by this book, is even more ambitious. It brings with it functionality never available to the Office developer before, such as data binding and data/view separation, design-time views of Excel and Word documents inside Visual Studio, rich support for Windows Forms controls in the document, the ability to create custom Office task panes, server-side programming support against Office—and that's just scratching the surface. Although the primary target of VSTO is the professional developer, this does not mean that building an Office solution with VSTO is rocket science. VSTO makes it possible to create very rich applications with just a few lines of code.

This book tries to put into one place all the information you need to succeed using VSTO to program against Word 2003, Excel 2003, Outlook 2003, and InfoPath 2003. It introduces the Office object models and covers the most commonly used objects in those object models. In addition, this book will help you avoid some pitfalls that result from the COM origins of the Office object models.

This book also provides an insider view of all the rich features of VSTO. We participated in the design and implementation of many of these features. We can therefore speak from the unique perspective of living and breathing VSTO for the past three years. Programming Office using VSTO is powerful and fun. We hope you enjoy using VSTO as much as we enjoyed writing about it and creating it.

Eric Carter
Eric Lippert

May 2005


Untitled Document

LaMacchia, Brian - Lange, Sebastian - Lyons, Matthew - Martin, Rudi - Price, Kevin T.
.NET Framework Security
Addison-Wesley, 2002

Lippert, Eric
Visual Basic .NET Code Security Handbook
Wrox Press, 2002

Howard, Michael - LeBlanc, David
Writing Secure Code, 2nd Edition
Microsoft Press, 2003

Office Programming
Whitechapel, Andrew
Microsoft .NET Development for Microsoft Office
Microsoft Press, 2004

Mosher, Sue
Microsoft Outlook Programming
Digital Press, 2002

Data Programming
Homer, Alex - Sussman, Dave - Fussell, Mark
A First Look at ADO.NET and System.Xml v. 2.0
Addison-Wesley, 2004

Wildermuth, Shawn
Pragmatic ADO.NET
Addison-Wesley, 2003

Forms Programming
Sells, Chris - Gehtland, Justin
Windows Forms Programming in Visual Basic .NET
Addison-Wesley, 2004

Sells, Chris
Windows Forms Programming in C#
Addison-Wesley, 2004

Hejlsberg, Anders - Wiltamuth, Scott - Golde, Peter
The C# Programming Language
Addison-Wesley, 2004

Box, Don - Skonnard, Aaron - Lam, John
Essential XML: Beyond Markup
Addison-Wesley, 2000

Nathan, Adam
.NET and COM: The Complete Interoperability Guide
Sams Publishing, 2002


Download the Index file related to this title.



Untitled Document Errata for First Edition of Visual Studio Tools for Office

Chapter 1:

• Table 1-3, page 27: The event name "ShetFollowHyperlink" should be "SheetFollowHyperlink"
• Listing 1-20, page 31: The variable myBtn should be renamed to btn to match the explanatory text on page 30. The myBtn_Click method should similarly be renamed to btn_Click for continuity.

Chapter 3:

• Listing 3-1, page 88: The line of code that reads:


should instead be

[ClassInterface(ClassInterfaceType.AutoDual), ComVisible(true)]

• Page 90: When you add the AutomationAddin.MyFunctions class to the list of automation add-ins, you may get an error from Excel about mscoree. Be sure to click the No button if this error dialog appears otherwise the add-in will be removed from the list of installed automation add-ins.

Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership