Learn your way! Get started

Visual Studio Tools for Office Second Edition

with expert Jan Fransen


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack

Release date 3/5/2008
Level Intermediate
Runtime 8h 8m
Closed captioning N/A
Transcript N/A
eBooks / courseware Included
Hands-on labs Included
Sample code Included
Exams Included
Platform Internet Explorer Only


Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

This course is designed for developers who want to develop document-based solutions for Microsoft Word 2003 or Microsoft Excel 2003, or add-ins for most Microsoft Office 2003 and Microsoft Office 2007 products. You’ll learn about the types of solutions you can create with Visual Studio Tools for Office, understand how to work with the Office object models, find out how to create your own user interface through Windows forms or the task pane, learn about deploying your solutions to end-user computers, and much more.

Meet the expert

Jan Fransen has been working to educate people in the best ways to use Microsoft products for more than 15 years. She's written both data-based and document-based applications for large and small companies and has helped hundreds of Office users and developers get started on the right foot through public and onsite training classes. As a writer, Jan has developed training courseware, contributed to books on Microsoft Office, written white papers for publication on MSDN, and created samples designed to help developers get up to speed quickly on new Microsoft products and features.

Course outline



Module 1

Build VSTO Solutions (26:16)
  • Introduction (01:27)
  • Overview: VSTO Versions (02:13)
  • VSTO 2005 SE (00:54)
  • Choose a Language (00:43)
  • VSTO 2005 SE Pre-reqs (02:21)
  • First VSTO 2005 SE Project (01:53)
  • Solution File Structure (01:00)
  • The Document (00:46)
  • The Assembly (00:49)
  • Demo: Added References (01:39)
  • Demo: Event Handlers (03:36)
  • Application Level Solution (00:42)
  • ThisAddIn (00:20)
  • Load an Add-In (01:17)
  • Demo: Create an Add-In (02:59)
  • Registry Entries (01:27)
  • Setup Project (01:18)
  • Summary (00:43)
Introduce Managed Code (37:05)
  • Introduction (01:06)
  • .NET Framework Examples (00:47)
  • .NET Data Types (00:29)
  • Work with Strings (01:46)
  • Demo: Strings (03:27)
  • Retrieve File Information (00:36)
  • Demo: Retrieve Files (01:03)
  • Demo: Retrieve FileInfo (01:48)
  • Demo: Retrieve Path Info (02:12)
  • Exception Handling (00:58)
  • Demo: Exception Handling (04:11)
  • Build Your Own Class (00:39)
  • Demo: Simple Class (02:49)
  • Windows Forms (00:50)
  • Use a Windows Form (00:26)
  • Demo: Investigate Form (00:43)
  • Data Binding (01:10)
  • View Project Properties (01:08)
  • View Data Source (02:17)
  • Bind to My Namespace (00:53)
  • Demo: Add Data Binding (00:54)
  • Create Form (01:05)
  • Data Source Config Wizard (04:23)
  • Save/Test Add-in (00:37)
  • Summary (00:38)

Module 2

Office / Managed Code (15:37)
  • Introduction (01:09)
  • Application Object (00:58)
  • Demo: Simple Windows App (05:02)
  • Props/Methods/Member Obj. (00:32)
  • Properties (00:55)
  • Methods (00:48)
  • Member Objects (00:56)
  • Demo: Add a Property (00:51)
  • Demo: Create Word Document (01:14)
  • Events (00:51)
  • Demo: Respond to Events (01:25)
  • Summary (00:50)
Word Object Model (17:59)
  • Introduction (00:35)
  • Use Word Objects (01:21)
  • What"s Active? (00:38)
  • Demo: This vs Active (01:19)
  • Demo: Selection (00:36)
  • Work with Ranges (01:50)
  • Demo: Ranges (02:30)
  • Demo: Small Range (00:42)
  • Demo: Paragraph Range (00:36)
  • Demo: Insert Text (01:18)
  • Collapse Method (01:53)
  • Demo: Collapse (01:45)
  • Demo: Insert Methods (00:45)
  • Demo: Collapse / Insert (01:08)
  • Summary (00:55)
Excel Object Model (30:27)
  • Introduction (00:30)
  • Use Excel Objects (00:53)
  • What"s Active? (01:58)
  • Casting (01:11)
  • Demo: This vs Active (01:49)
  • Demo: ActiveSheet (02:10)
  • Active Cell/Selection (00:31)
  • Demo: Active Cell/Selection (05:14)
  • Work With Ranges (01:31)
  • Demo: Ranges/Data Region (01:35)
  • Item Property (00:41)
  • Demo: Item Property (03:07)
  • Sub-Range (00:43)
  • Demo: Sub-Range (01:49)
  • Chart Object (01:33)
  • Demo: Create Chart (04:35)
  • Summary (00:28)

Module 3

PowerPoint Object Model (19:02)
  • Introduction (00:39)
  • Use PowerPoint Objects (00:50)
  • Slides (00:58)
  • Demo: New Presentation (00:26)
  • Demo: Add New Slide (01:55)
  • Shape Object (00:29)
  • Text Property (01:44)
  • Demo: Text Frame (01:18)
  • Demo: Text Range (01:01)
  • Demo: Add Bulleted Slide (02:08)
  • Command Bars (03:09)
  • Demo: Command Bars (03:30)
  • Summary (00:48)
C Sharp Techniques (22:08)
  • Introduction (00:56)
  • Deal with Parameters (01:00)
  • System.Type.Missing (01:18)
  • Strongly Type Opt Params (00:53)
  • Demo: MsoTriState (01:44)
  • Arguments by Ref in Word (01:21)
  • Demo: Args by Ref in Word (01:02)
  • Excel Accessors/Word PIAs (00:46)
  • Parameterized Props in Excel (04:07)
  • Variant Parameters in Word (02:54)
  • Office File Dialogs (03:34)
  • Late-Bound Members (00:30)
  • Using Reflection (01:26)
  • Summary (00:30)
Create Add-Ins (39:37)
  • Introduction (00:59)
  • Shared Add-in Disadvantages (00:51)
  • Add-in Advantages (00:47)
  • Add-ins for Office 2003 (00:18)
  • Add-ins for Office 2007 (00:17)
  • Demo: Create Simple Add-in (02:07)
  • Explore VSTO Word Add-In (00:49)
  • Run Add-In (02:49)
  • Investigate Add-In Code (00:12)
  • ChooseDocumentsForm (01:54)
  • DocumentFile Class (00:40)
  • ThisAddIn Class (00:37)
  • Demo: ChooseDocumentForm (05:29)
  • Demo: DocumentFile Code (02:12)
  • Demo: ThisAddIn Code (03:36)
  • PowerPoint Add-In (01:14)
  • Demo: Create PPT Add-In (12:51)
  • Test PowerPoint Add-In (01:15)
  • Summary (00:33)

Module 4

Customizing the Ribbon (18:35)
  • Introduction (00:56)
  • Overview (00:51)
  • Ribbon eXtensibility (00:27)
  • Ribbon Customization (00:23)
  • Demo: Add Ribbon w/Template (01:31)
  • Markup for Tabs (01:17)
  • Demo: View Control IDs (02:35)
  • Markup for Groups (01:03)
  • Demo: Markup for Groups (02:32)
  • Hook up Ribbon (00:39)
  • Demo: Load Ribbon (01:53)
  • Demo: Test the Ribbon (00:48)
  • Callback Procedures (00:23)
  • Demo: Add Callback Procs (02:47)
  • Summary (00:25)
Custom Task Pane (19:45)
  • Introduction (00:40)
  • Overview (00:42)
  • Add Task Pane (02:05)
  • Demo: Add Task Pane (03:59)
  • Control Visibility (00:28)
  • Demo: Control Visibility (03:05)
  • Sync Ribbon/Task Pane (00:41)
  • Demo: Sync Ribbon/Task Pane (03:18)
  • Control Display (00:47)
  • Demo: Control Display (03:30)
  • Summary (00:26)
Work with Outlook (24:34)
  • Introduction (00:48)
  • Use Outlook Objects (02:51)
  • Demo: Formatted Email (00:40)
  • Demo: Email Attachments (01:04)
  • Demo: Create Contact (01:19)
  • Navigating Folders (01:28)
  • Demo: Move Contact (02:01)
  • Demo: Create in Folder (01:26)
  • Working with Events (00:57)
  • Demo: ItemSend Event (03:01)
  • Execute Commands (00:44)
  • Use FindControl (01:04)
  • Demo: FindControl (03:30)
  • Execute Ribbon Control (00:43)
  • Find Control IDs (00:36)
  • Demo: Find Control ID (01:41)
  • Summary (00:35)

Module 5

Outlook 2007 Features (44:36)
  • Introduction (00:34)
  • Work w/Outlook 2007 Data (01:29)
  • Use Outlook Stores (00:40)
  • Demo: Outlook Stores (01:47)
  • Folders (00:44)
  • Demo: Iterate Folders (02:12)
  • Read Items in Table (02:54)
  • Demo: Read Table Items (02:21)
  • Restrict Rows (00:28)
  • Demo: Restrict Rows (02:52)
  • Outlook Form Region (00:52)
  • Create Region (01:22)
  • Demo: Create Outlook Region (04:02)
  • Add Custom Control (02:52)
  • Create Add-In (00:38)
  • Demo: Create Add-In (08:29)
  • Region Manifest/Registry Entry (00:55)
  • Demo: Region Manifest (02:06)
  • Demo: Registry Entry (02:19)
  • Add Ribbon to Form Region (00:29)
  • Demo: Add Ribbon (03:43)
  • Summary (00:39)
Doc Based Word Solutions (23:26)
  • Introduction (01:05)
  • Overview (00:42)
  • Doc-Based Architecture (00:50)
  • Open a Solution (00:29)
  • Base Solution on Template (00:25)
  • Demo: Template Based Sol. (04:04)
  • Actions Pane (01:43)
  • Demo: Add Action Pane (03:20)
  • Test Solution (01:21)
  • Display/Hide Actions Pane (00:40)
  • Task Pane CommandBar Item (00:34)
  • Show Actions Pane (00:38)
  • Show/Hide Controls (00:42)
  • Demo: Hide Actions Pane (00:29)
  • Demo: Hide Task Pane (00:41)
  • Use WinForms Controls (01:19)
  • Demo: WinForms Controls (03:18)
  • Summary (00:56)

Module 6

Host Controls / Data in Word (40:03)
  • Introduction (00:49)
  • Why Host Controls? (01:06)
  • Overview: Bookmarks (00:34)
  • Demo: Bookmark Host Ctrl (01:32)
  • View User Control Code (01:46)
  • View Document Code (01:58)
  • Modify Update Button Code (02:21)
  • Test Solution (00:37)
  • XMLNode Host Control (01:18)
  • Demo: XMLNode Markup (01:23)
  • Add XML Schema (04:51)
  • Bind Data to Word Doc (01:22)
  • DataSets / DataTables (00:30)
  • TableAdapters (00:45)
  • Demo: Data Binding (00:04)
  • View DataSource (00:55)
  • View DataSet / DataTables (02:06)
  • BindingSource (00:52)
  • Work With User Control (03:33)
  • View User Control Code (01:20)
  • Demo: Add Data Binding (04:34)
  • View/Add Data Binding Code (04:31)
  • Test Data Binding Doc (00:27)
  • Summary (00:37)
Doc Based Excel Solutions (23:02)
  • Introduction (01:03)
  • Overview (01:04)
  • Doc-Based Architecture (00:53)
  • Opening a Solution (00:35)
  • Demo: Excel Based Solution (04:30)
  • Actions Pane (01:22)
  • Demo: Add Action Pane (03:14)
  • Test Solution (01:21)
  • Display/Hide Actions Pane (00:28)
  • Task Pane CommandBar Item (00:38)
  • Show Actions Pane (00:33)
  • Show/Hide Controls (00:44)
  • Demo: Hide Actions Pane (01:27)
  • Use WinForms Controls (00:53)
  • Demo: WinForms Controls (03:34)
  • Summary (00:37)

Module 7

Host Controls / Data in Excel (41:54)
  • Introduction (00:52)
  • Why Host Controls? (00:40)
  • Use Excel Ranges (01:17)
  • Demo: Named Range Host Ctrl (02:43)
  • Bind Data to Excel WB (01:07)
  • DataSets / DataTables (00:23)
  • TableAdapters (00:44)
  • Demo: Data Binding (00:06)
  • View Data Source (00:22)
  • View DataSet / DataTables (00:48)
  • Bind Form Controls (02:39)
  • Bind Named Range (03:26)
  • Data Tables / Fill Methods (01:38)
  • Demo: Add Data Binding (00:06)
  • View/Add Data Binding Code (02:11)
  • Edit Data Set (02:30)
  • Add Methods to Table Adapter (02:50)
  • Add Button (01:55)
  • Modify Data Bindings (03:05)
  • Lists in Excel (01:04)
  • Demo: ListObject Control (01:45)
  • Add New Data Table (05:01)
  • Add Order Details (00:42)
  • Conditional Formatting (02:16)
  • Test Solution (00:39)
  • Summary (00:51)

Module 8

Deploy Doc Based Solutions (27:50)
  • Introduction (01:16)
  • Deployment Pre-reqs (00:40)
  • Security (02:08)
  • Overview: CASPol.exe (01:08)
  • Deployment Models (01:24)
  • Demo: Local/Local Deploy (03:01)
  • Demo: CASPol.exe (02:53)
  • Deploy to Different Folders (00:51)
  • Demo: Different Folders (03:09)
  • Demo: Modify Manifest (00:21)
  • Deploy to Shared Folder (00:51)
  • Publish Wizard (00:45)
  • Overview: Manifests (00:55)
  • Demo: Publish Solution (01:24)
  • View Deployment Manifest (00:59)
  • View Application Manifest (00:38)
  • Demo: Local/Network Deploy (02:27)
  • Update Assembly (00:48)
  • Demo: Update Assembly (01:24)
  • Summary (00:37)
Deploy Add-Ins (16:35)
  • Introduction (00:55)
  • Overview (00:32)
  • Local Deployment (00:20)
  • Demo: Local Deployment (05:21)
  • Redeploy Add-In Local (00:46)
  • Network Deployment (00:42)
  • Demo: Network Deployment (05:31)
  • Demo: Update Net. Assembly (00:39)
  • Update Network Assembly (00:48)
  • Summary (00:58)