Mike Gilbert on Turning Microsoft Office into a Serious Development Platform

MSDN Interview

March 29, 1999

At the same time Microsoft releases its new Office 2000 suite this year, the company also will ship a greatly improved version of the product for developers. Office 2000 Developer is designed to give professional developers everything they need to build a wide range of custom applications that use Office 2000 in some fashion.

In this interview, Office 2000 Developer technical evangelist Mike Gilbert, author of several books about programming with Office and Visual Basic for Applications, explains why the new product is a major upgrade from Office 97 Developer Edition.

If you still think the developer version of Office is mainly for customizing applications built with Microsoft Access, it's time for an update. With Office 2000, Microsoft has extended VBA to all the core Office applications, including Outlook 2000 and FrontPage 2000. Developers no longer are limited in the types of custom Office applications they can build. Office 2000 Developer takes full advantage of this with a host of new tools and utilities that allow developers to do everything from create their own COM add-ins using VBA to sharing reusable components across teams.

Here is a transcript of his conversation with MSDN Online's John Swenson.

MSDN: What types of developers did Microsoft design Office 2000 Developer for?

GILBERT: Office 2000 Developer is aimed primarily at the professional developer, regardless of skill level. It's for people who develop Office solutions as part of their job, basically.

That's why Microsoft moved Office 2000 Developer to the company's Developer Tools Division (the division that builds Visual Studio and the MSDN Library) from the Office group, where the product used to reside. The people in this division have a lot of experience with the developer market. They're more in touch with professional developers.

That's not to say that everyone who creates Office solutions is a professional developer. There are somewhere in the neighborhood of 5 million to 6 million people who use VBA. We figure about 1.6 to 1.8 of those 5 million are professional developers who use Office to build some part of their solutions.

MSDN: What about the bulk of those 5 million to 6 million who use VBA? Will they have the skills to use Office 2000 Developer?

GILBERT: In terms of skill level, you don't necessarily have to be a sophisticated developer to get value out of Office 2000 Developer. We include a rich set of documentation with the product called the Office Programmer's Guide. This outlines how to create Office solutions from beginning to end, even if you just have an introductory knowledge of VBA and Office.

Once you become a more sophisticated or proficient Office and VBA developer, then some of the additional features in Office 2000 Developer become valuable, such as the VBA add-ins and COM add-in designer. But by no means is Office 2000 Developer limited to high-end developers. It addresses all skill levels, but is aimed primarily at folks who do this kind of development for a living.

MSDN: Why does Microsoft have a special version of Office for developers?

GILBERT: Obviously, Office is a great desktop application suite. Millions of people use it for word processing and other non-development tasks. But Office is also a set of components—almost a platform. And given the high market penetration of Office, it's a pretty prevalent platform.

With the base Office product, you get all these components stitched together into something we call Office. That base Office product includes VBA, a development language hosted within Office. End users can use VBA to create macros, and developers can use it to build solutions.

But here's why we have a special version of Office just for developers: If you're a professional developer who wants to build a solution involving Office in any way, we want you to be able to buy a single Microsoft product that gives you everything you need to do that. You shouldn't have to go out and buy any other tools. That's what Office 2000 Developer does.

If you look at what's actually in Office 2000 Developer, you'll find a lot. One is developer documentation. We're one of the few Microsoft products that still ships with hard-copy documentation, because developers tell us they like having it there. Office 2000 Developer also includes an Office Programmers Guide, a thick reference book on building solutions with Office. And it comes with an Office object model guide, and a CD-ROM of selected articles from the MSDN Library related to Office development.

We always ask developers who are targeting Office how they learned to do Office development. Almost half tell us they learned by trial and error. Until now, there really was no single source where developers could learn this information. That's what Office 2000 Developer is all about.

MSDN: Do developers working in VBA need Visual Studio or Visual Basic?

GILBERT: No, because, like I said earlier, Office 2000 Developer includes the object browser, Help files, and everything else developers need to build custom Office applications. And every version of Office includes VBA. All the tools and utilities in Office 2000 Developer hook right into the VBA that's already part of Office.

MSDN: What are some of these new tools and utilities in Office 2000 Developer?

GILBERT: We had a developer conference in Los Angeles recently, where we showed them off. One of the key utilities that got a lot of attention is our Code Librarian.

This feature came about because of the work some developers at Microsoft did internally to manage and store their VBA source code. When we were deciding what to include in Office 2000 Developer, one of them said, "Oh, I've got this utility I wrote that stores my source code. I can search, sort, and organize with it to get at stuff real easily." We said, "Well, that might be interesting for other developers, too." So we added that utility and called it the Code Librarian. We've got a bunch of other utilities that plug right into the VBA environment and do things like add error handling and comments to your code.

MSDN: Very few of the people reading this will have seen Office 2000 Developer. Does the environment look different?

GILBERT: Office 2000 Developer builds on the VBA that's already in Office. It's not like a separate environment or a separate kind of tool, like the Visual Studio tools. The VBA environment in Office 2000 is very similar to what it was in Office 97.

The biggest change developers will notice, even before they install Office 2000 Developer, is that there's now an Add-Ins menu in the VBA editor. We created a COM-based add-in architecture that lets you write your own add-ins to the VBA environment, just like you can with Visual Basic.

When you run the Office 2000 Developer Setup program, it installs a bunch of utilities. If you open the VBA editor and go to Add-Ins, it will open the new Add-In Manager dialog box, where you can see the new add-ins we've included. So, what we've done is enable this new add-in architecture in VBA, and then supplied some add-ins with Office 2000 Developer.

MSDN: What is the significance of this new COM add-in architecture in VBA and Office 2000?

GILBERT: MSDN readers who understand how add-ins work with Office 97 know you have to do different things today to get add-ins to work with different apps. (For technical details about how add-ins work, see "Creating Add-Ins in Microsoft Word 97.") In Word 97 you have to put VBA code in a template. In Excel 97 you have to put VBA code in an .xla file. There are different ways of creating and registering VBA code, and a lot of hurdles to jump over to get add-ins to work in different Office applications.

Well, this time around the Office team created a unified architecture based on COM so that Visual Basic and Visual C++ developers can create add-ins using their tool of choice. If you're an Office developer working in VBA and you want to take advantage of this new add-in architecture, we enable the creation of COM add-ins right within the VBA environment so you don't have to go out and purchase another development tool.  All you need is Office 2000 Developer, which gives you all of Microsoft's VBA tools, plus the ability to create COM add-ins.

That's significant because this is the first time developers have been able to create COM components from VBA. Until now, they've only been able to automate the host application using VBA. Now that we have this COM add-in model, developers are going to want to do everything with Office.

MSDN: You said Office 2000 Developer includes some pre-written COM add-ins. Can you describe some of them?

GILBERT: One add-in we think developers will be pretty excited about is the Source Code Control add-in. It lets them do source-code control with their VBA projects the same way they can do source-code control with their Visual Basic, Visual C++, and Visual J++ projects. This is something VBA developers told us they want.

In Office 97 Developer Edition, we had an add-in that was specific to Access. It let Access handle all the source-code control of VBA, plus queries, forms, and so forth. In Office 2000 Developer we created an add-in for the Visual Basic Editor environment. Now, not only does our Source Code Control work with Access, but it also works with all the Office applications.

We're also including a copy of Visual SourceSafe in Office 2000 Developer. Last time we gave you the add-in, but then made you go out and buy Visual SourceSafe. Now we're putting it all into one box.

I should also point out that the add-ins we're delivering with Office 2000 Developer will work with any Office application. They'll also work with any third party, VBA-enabled application that hosts the next version of VBA (VBA 6.0).

One of the other jobs I have at Microsoft, besides working on Office 2000 Developer, is managing the VBA product and SDK we give our third-party VBA licensees, such as Autodesk, Corel, Visio, and Great Plains Software. There are now well over 100 companies (ISVs) licensing VBA from Microsoft. They're shipping more than 80 VBA-enabled applications, all built with VBA 5.0.

As these third-party VBA licensees update their products for VBA 6.0 (the new version of VBA coming in Office 2000), their applications will work with all of the new add-ins in Office 2000 Developer.

MSDN: What is the significance of that?

GILBERT: It means that not only will Visual Studio and Office developers want to use Office Developer, but also developers who use VBA-enabled applications from third-party VBA licensees.

MSDN: Which features of Office 97 Developer did you keep and upgrade for Office 2000 Developer?

GILBERT: We still have the Access run time, so you can distribute run-time versions of your Access applications. We still have the Replication Manager (now version 4.0), which allows you to build replication scenarios for your Jet databases. And we still have ActiveX controls and a setup tool.

In Office 2000 Developer, the new setup tool is called the Package and Deployment Wizard. It has the same look and feel as the Package and Deployment Wizard in Visual Basic 6.0. It will work with all Office applications, not just Access.

This addresses the trend of developers creating more custom Office solutions built around all the Office applications, not just Access. It's interesting. Whenever we sponsored Office developer conferences in the past, the audience was always very focused on Access, with a few people developing for Excel or other Office applications. At the latest Office Developers conference, the audience had a much broader set of skills. They were developing applications for Outlook, Word, and Excel, too.

We're clearly seeing our users broaden out from the core Access developer. With Office 2000 Developer, we're finally delivering the tools to help people developing for other Office applications and VBA. For example, the new Source Code Control add-in and the Package and Deployment Wizard work with all Office applications.

MSDN: Microsoft announced at its Professional Developers Conference in October that Outlook 2000 and FrontPage 2000 will host VBA, adding two more Office products to the list of VBA-enabled applications. What is the significance of this?

GILBERT: There are a number of ways to look at this. One is that as developers broaden out from Access and become Office developers, they want to look at all the different tools in the suite and all the different object models they can program against. Adding VBA to Outlook and FrontPage broadens the horizon for this growing group of developers.

Second, because VBA enables a tight level of integration between applications, the more Office applications we enable with VBA, the more custom applications developers can tie together. Adding VBA support to Outlook and FrontPage allows developers to add messaging and Web site management to the applications they're already building.

Let's imagine a scenario where someone is developing a data-analysis application in Excel that uses Word to print hard-copy reports. That's something they can build today using the VBA in Office 97. With the VBA added to Outlook and FrontPage, they could broaden their application to send out reports via e-mail using Outlook, and publish them on an intranet site using FrontPage.

Now that all the Office applications have VBA, it's easy to create these integrated solutions and add messaging and Web elements to them.

MSDN: Exactly what types of solutions can developers build with Office 2000 Developer?

GILBERT: Solutions that either are hosted in Office 2000 or use Office applications or components in some way. They use Office 2000 as part of a solution.

MSDN: How did Microsoft get to where it is today with Office 2000 Developer? Office 97 Developer Edition was the first version of Office to really include Office tools and utilities, correct?

GILBERT: Yes. Microsoft released an Access developers tool kit for Office 95, but, of course, that was only geared toward Access developers. Office 97 Developer Edition was Microsoft's first attempt to broaden these tools to all the Office applications.

Office 97 Developer Edition has a lot of useful tools for developers working in other Office applications besides Access. But a good chunk of it is aimed squarely at Access developers.

With Office 2000 Developer, we're adding tools that work in VBA and all the host Office apps, as well as a lot of documentation about developing for all the Office applications. It's a much broader and richer set of value-added tools than what we shipped in Office 97 Developer.

Mike Gilbert is Microsoft's product manager for Visual Basic for Applications, and co-author of such books as VBA Developer's Handbook, Access 97 Developer's Handbook, and Microsoft Office 97 Programming with VBA for Dummies.

Comments? Send us e-mail.