Microsoft KB Archive/292491

From BetaArchive Wiki
Knowledge Base


Office automation when multiple versions of Office are installed

Article ID: 292491

Article Last Modified on 5/30/2007



APPLIES TO

  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition



This article was previously published under Q292491

SUMMARY

This article discusses and explains how COM (Component Object Model) determines which version of an Office application is loaded when you use Office Automation.

MORE INFORMATION

When a COM server is first installed or registered, it adds entries to the registry that correspond with the server's programmatic identifier (PROGID) and class identifier (CLSID). These registry settings allow COM to retrieve information about a server, such as where the server is installed, and enables you to automate the server. To illustrate, Excel 2000 has the Excel.Application version-independent PROGID and the {00024500-0000-0000-C000-000000000046} CLSID. COM related registry entries for Excel 2000 include the following:

HKEY_CLASSES_ROOT\Excel.Application\CLSID
Default Value: {00024500-0000-0000-C000-000000000046}
HKEY_CLASSES_ROOT\CLSID\{00024500-0000-0000-C000-000000000046}\LocalServer32

Default Value: C:\PROGRA~1\MICROS~1\Office\EXCEL.EXE /automation


By following the registry keys from the PROGID to the CLSID, COM can learn where the Excel executable file is installed and start it for Automation.

When you have multiple versions of Office installed and you use Automation to one of the Office servers, the version that loads is governed by these settings in the registry. For the most part, the rule is that the last version that was installed is the version that loads with Automation; however, Word exhibits behavior that differs from the other Office applications. The different behaviors for each of the Office Automation servers are described in the following sections.

Access, Excel, and PowerPoint versions 97, 2000, 2002, 2003, and 2007

Access, Excel, and PowerPoint modify these registry keys during Office setup. When you automate one of these applications, the version that is loaded is the version that was last installed.

Word 97

Word 97 modifies these registry keys during Office setup. When you automate Word, if either Word 2000 or Word 2002 are installed, Word 97 loads only if it was the last version installed.

Word 2000, 2002, 2003, and 2007

Word 2000, 2002, 2003 and 2007 modify these registry keys during Office setup and each time Word starts. When you automate Word, the version that is loaded is the version that was last started by the user or the version that was last installed.

Additional Notes

A common perception for Office Automation when you have multiple versions of Office installed on a system is that you can dictate which version loads by using a specific version-dependent PROGID (for example, that "Excel.Application.9" loads Excel 2000, "Excel.Application.10" loads Excel 2002 and "Excel.Application.11" loads Office Excel 2003). However, this is not correct. Excel 2000 and later versions of Excel share the same CLSID, so the version that loads with these PROGIDs depends solely on which version was last installed.

For testing purposes, developers can force a specific version of an Office application to register by using the /regserver switch on the command line. For example, to force an Excel version to register without running setup, you can use a command line that resembles the following:

   "c:\program files\microsoft office\office\excel.exe" /regserver
                

Although you can implement this switch for testing and development purposes, it is not recommended that you rely on this switch in production scenarios.

For additional information about running multiple Office versions, or side-by-side Office installations, click the following article number to view the article in the Microsoft Knowledge Base:

290576 OFFXP: Running Multiple Versions of Microsoft Office



Additional query words: createobject getobject cocreateinstance excel.application word.application access.application powerpoint.application XL2007 ACC2007 PPT2007 WD2007

Keywords: kbexpertiseinter _ik11561 kbautomation kbgrpdso kbinfo kbpending kbvba kbvbp KB292491