Microsoft KB Archive/173604
Article ID: 173604
Article Last Modified on 2/12/2007
- Microsoft Outlook 97 Standard Edition
This article was previously published under Q173604
This article provides an overview of using the CommandBars collection and CommandBar object in a Microsoft Outlook 97 solution. Common issues and examples are also provided as a starting point for working with CommandBars.
Topics covered include:
- VBScript Syntax for Using Command Bars
- Using the FindControl Method
NOTE: The CommandBars collection is provided by the "Microsoft Office 8.0 Object Library."
Microsoft provides programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. Microsoft Support professionals can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific needs. If you have limited programming experience, you may want to contact the Microsoft fee-based consulting line at (800) 936-5200. For more information about the support options available from Microsoft, please see the following page on the World Wide Web:
In Office 97, menus and toolbars are combined into one collection called CommandBars. The CommandBars collection is included in the Office 97 object model, making them fully programmable.
However, unlike other Microsoft Office applications, Outlook 97 command bars cannot be modified through the user interface. In addition, the Outlook object model does not support many of the options that are available through command bars in either the application or forms windows. While you can programmatically create a custom toolbar, there is no way to assign either standard Outlook commands or custom functions to the buttons. Also, Outlook does not provide a means to store custom toolbars, so any programmatic changes will be lost when you exit Outlook.
However, because the Office CommandBars collection is available through the Outlook object model, you can execute existing Outlook commands or display particular dialog boxes.
From a developer's point of view, the main window in Outlook (the "application window") is referred to as "Explorer" and the form windows are referred to as "inspectors." Both types of windows have command bars (including both menus and toolbars). When working with the Outlook command bars, it is always important to make sure you are working with the correct set of command bars.
- Use the Explorer objects (ActiveExplorer/GetExplorer) to refer to the main application window in Outlook.
Use the Inspector objects (ActiveInspector/GetInspector) to refer to an Outlook item's window.
To reference To create a Window type an open window, use: new window, use: ------------------------------------------------------------ Application ActiveExplorer method GetExplorer method Item/Form ActiveInspector method GetInspector method
Syntax for Referencing a Command Bar
The following simplified syntax will always work in both Microsoft Visual Basic for Applications and Microsoft Visual Basic Scripting Edition (VBScript):
Set MyCB = <Inspector object>.CommandBars.Item("Menu Bar")
The following simplified syntax will work using Automation if the Inspector object is declared as type Inspector, but this will fail in VBScript:
Set MyCB = <Inspector object>.CommandBars("Menu Bar")
For example, this Visual Basic for Applications subroutine will not generate an error:
Sub TestCommandBars() Dim ol As New Outlook.Application Dim myInspector As Inspector Set myInspector = ol.ActiveInspector Set MyCB = myInspector.CommandBars("Menu Bar") End Sub
However, the following sample code will generate the "Wrong number of arguments or invalid property assignment" error message:
Sub TestCommandBars() Dim ol As New Outlook.Application Dim myInspector As Object Set myInspector = ol.ActiveInspector Set MyCB = myInspector.CommandBars("Menu Bar") End Sub
Using the FindControl Method
You can use the FindControl method to reference any Outlook commands (or controls, in relation to the CommandBars object model) if you know the internal value Outlook has assigned for each command. Using the internal ID means that you can use more concise syntax when executing CommandBar commands.
For example, consider a custom Outlook form that uses a custom command button to print the form. Assuming the command button is named cmdPrint, the following VBScript code examples will display the File Print dialog box:
Sub cmdPrint_Click() Item.GetInspector.CommandBars.FindControl(,4).Execute End Sub
Sub cmdPrint_Click() Item.GetInspector.CommandBars.Item("Menu Bar").Controls("File") _ .Controls("Print...").Execute End Sub
Outlook's command IDs can be obtained from the CommandBars collection by using the following sample Automation code. This code must be run from Microsoft Word 97 since it will create a new document and insert a tab- delimited listing of the information in the document.
Sub GetIDsForInspector() ' The Outlook object library must be referenced. Dim objOL As New Outlook.Application Dim objCommand As Object Set cb = objOL.ActiveExplorer.CommandBars ' Create a new Word document. Documents.Add With Selection ' 3500 is the maximum # of Controls Outlook has defined. For I = 1 To 3500 Set lbl = cb.FindControl(, I) If lbl Is Nothing Then ' Do nothing. Else ' Insert CommandBar name, Command name, and ID. .TypeText lbl.Parent.Name & Chr(9) _ & lbl.Caption & Chr(9) & I .TypeParagraph End If Next End With End Sub
The following list of IDs was generated from running the code above on each of the Outlook item types and the application window (Explorer). The data was reformatted into the table format below.
NOTE: Because many of the Outlook windows, or inspectors, contain the same controls, duplicate controls were removed to consolidate the data. If you need to determine exactly which commands are available for each type of Outlook item or the application window, you can use the code example above to create a listing for that particular item.
CommandBar Control ID ----------------------------------------------------------- Align Bottom 3073 Align Center 3074 Align Left 3070 Align Middle 3075 Align Right 3071 Align To Grid 3142 Align Top 3072 Appointment Cancel Invitation 2487 Appointment Forward 356 Appointment New Appointment 1992 Appointment New Event 1909 Appointment New Meeting Request 2777 Arrange Buttons Bottom 1655 Arrange Buttons Right 1656 Center In Form Horizontally 1644 Center In Form Vertically 1645 Compose Choose Form... 1910 Compose Choose Template... 3176 Compose Forward 356 Compose New Mail Message 1995 Compose New Mail Message 2986 Compose New Post in This Folder 1972 Compose New Post in This Folder 2007 Compose Post Reply to This Folder 1985 Compose Reply 354 Compose Reply to All 355 Contact Forward 356 Contact New Contact 1993 Contact New Contact from Same Company 1908 Contact New Letter to Contact 2498 Contact New Task for Contact 1979 Contact Plan a Meeting... 1084 Context Menu Categories... 1888 Context Menu Mark as Unread 1675 Context Menu Move to Folder... 1679 Context Menu New Contact from Same Company 1908 Context Menu Open 746 Context Menu Print 2521 Dial Phone New Call... 2501 Edit Categories... 1888 Edit Clear 47 Edit Copy 19 Edit Copy to Folder... 1676 Edit Cut 21 Edit Links... 759 Edit Mark All as Read 1906 Edit Mark as Read 1674 Edit Mark as Unread 1675 Edit Paste 22 Edit Paste Special... 755 Edit Revise Contents 3273 Edit Select All 756 Edit Undo 128 File Add to Outlook Bar... 1969 File Archive... 1886 File Close 2011 File Close All Items 722 File Copy to Folder... 1676 File Delete 478 File Exit 752 File Exit and Log Off 1891 File Import and Export... 2577 File Move to Folder... 1679 File Open 2779 File Post 2988 File Print Preview 109 File Print... 4 File Properties 750 File Save 3 File Save and New in Company 1915 File Save As... 748 File Save Attachments... 3167 File Send 3037 Find All Messages from Sender... 2607 Find All Related Messages... 2684 Folder Copy "Inbox"... 2499 Folder Create Subfolder... 1660 Folder Delete "Inbox" 2500 Folder Move "Inbox"... 2506 Folder Properties for "Inbox" 2502 Folder Rename "Inbox"... 2512 Form Advanced Properties 3166 Form Display This Page 1971 Form Rename Page... 1879 Form Separate Read Layout 1920 Form Set Grid Size... 2686 Form Design Align Center 668 Form Design Align Left 664 Form Design Bring to Front 166 Form Design Control Toolbox 548 Form Design Edit Compose Page 2514 Form Design Edit Read Page 2516 Form Design Field Chooser 1748 Form Design Group 164 Form Design Left 3070 Form Design Properties 222 Form Design Publish Form As... 1913 Form Design Send to Back 167 Form Design Snap to Grid 2993 Form Design Ungroup 165 Form Design View Code 1561 Form Design Width 1646 Go Calendar 3128 Go Contacts 3129 Go Deleted Items 3134 Go Go to Folder... 1868 Go Inbox 3127 Go Journal 3132 Go My Computer 3135 Go Notes 3131 Go Outbox 3171 Go Sent Items 3133 Go Tasks 3130 Help About Microsoft Outlook 927 Help About this Form 2503 Help Contents and Index 983 Help Microsoft Outlook Help 984 Help What's This? 124 Horizontal Spacing Decrease 1649 Horizontal Spacing Increase 1650 Horizontal Spacing Make Equal 3137 Horizontal Spacing Remove 1651 Insert File... 777 Insert Item... 2505 Journal Forward 356 Journal New Journal Entry 1994 Journal Post Reply to This Folder 1985 Layout AutoLayout 2984 Layout Show Grid 2991 Layout Size to Fit 551 Layout Size to Grid 2992 Layout Tab Order... 469 Microsoft on the Web Best of the Web 3031 Microsoft on the Web Free Stuff 3021 Microsoft on the Web Frequently Asked Questions 3023 Microsoft on the Web Microsoft Home Page 3091 Microsoft on the Web Microsoft Office Home Page 3029 Microsoft on the Web Online Support 3024 Microsoft on the Web Product News 3022 Microsoft on the Web Search the Web... 3032 Microsoft on the Web Send Feedback... 3030 Microsoft on the Web Web Help 14 3034 Microsoft on the Web Web Help 15 3035 Microsoft on the Web Web Help 16 3036 Microsoft on the Web Web Help 5 3025 Microsoft on the Web Web Help 6 3026 Microsoft on the Web Web Help 7 3027 Microsoft on the Web Web Help 8 3028 Microsoft on the Web Web Tutorial 3033 New Item Appointment 1106 New Item Choose Form... 1910 New Item Choose Template... 3176 New Item Contact 1099 New Item Folder... 1755 New Item Journal Entry 1989 New Item Mail Message 1757 New Item Meeting Request 1754 New Item Note 1758 New Item Office Document 2576 New Item Post in This Folder 2687 New Item Task 1100 New Item Task Request 2006 Next Flagged Message 1999 Next High Importance Item 1871 Next Incomplete Task 1899 Next Item 360 Next Item from Sender 1901 Next Item in Conversation Topic 1903 Next Last Item in Folder 1991 Next Unread Item 2000 Open Shared Folder Exchange Server Folder... 1863 Open Shared Folder Personal Folder... 1876 Order Bring Forward 170 Order Send Backward 171 Outline Collapse All 1917 Outline Collapse This Group 1870 Outline Expand All 1916 Outline Expand This Group 1884 Page Setup Define Print Styles... 1894 Page Setup Memo Style 746 Previous First Item in Folder 1865 Previous Flagged Message 1998 Previous High Importance Item 1872 Previous Incomplete Task 1900 Previous Item 359 Previous Item from Sender 1902 Previous Item in Conversation Topic 1904 Previous Unread Item 2001 Previous Unread Item 2001 Previous Unread Item 2001 Previous Unread Item 2001 Previous Unread Item 2001 Redial None 746 Remote Close 923 Remote Connect... 1102 Remote Disconnect 1103 Remote Mark to Retrieve 1104 Remote Mark to Retrieve a Copy 1753 Remote Remote Tools 1101 Remote Unmark 1921 Remote Unmark All 1105 Size To Both 1648 Size To Height 1647 Standard Address Book... 353 Standard Assign Task 1976 Standard AutoDialer 568 Standard AutoPreview 1744 Standard Back 1017 Standard Check Names 361 Standard Contact 1099 Standard Copy 19 Standard Current View 1893 Standard Cut 21 Standard Day 1094 Standard Delete 478 Standard Digitally Sign Message 719 Standard Document Map 1714 Standard Edit Series 2010 Standard Explore Web Page 2497 Standard File... 1079 Standard Find Items... 2683 Standard Folder List 1077 Standard Forward 356 Standard Forward 1018 Standard Go to Today 1098 Standard Group By Box 1750 Standard Importance: High 1074 Standard Importance: Low 1075 Standard Invite Attendees 1086 Standard Item 359 Standard Item 360 Standard Mark Complete 2985 Standard Message Flag... 1678 Standard Message Header 1751 Standard Microsoft Outlook Help 984 Standard Month 1096 Standard Move to Folder 2778 Standard New Meeting with Contact 1980 Standard New Message to Contact 1978 Standard Next Item 2614 Standard Paste 22 Standard Plan a Meeting... 1084 Standard Previous Item 2615 Standard Print 2521 Standard Print Preview 109 Standard Print... 4 Standard Recurrence... 1977 Standard Reply 354 Standard Reply to All 355 Standard Save 3 Standard Save and Close 1975 Standard Save and New 1665 Standard Seal Message with Encryption 718 Standard Send 2617 Standard Send Status Report 1760 Standard Undo 128 Standard Up One Level 1762 Standard Week 1095 Task Cancel Assignment 2004 Task Forward 356 Task New Task 1997 Task New Task Request 1761 Task Reply 354 Task Reply to All 355 Task Skip Occurrence 1919 Tasks Choose Form... 1910 Tasks Choose Template... 3176 Tasks New Task 1997 Tasks New Task Request 1761 Tasks Post Reply to This Folder 1985 Tasks Save Task Order 1912 Toolbar List Standard 761 Tools Address Book... 353 Tools AutoCorrect... 793 Tools AutoSignature... 1078 Tools Check for New Mail 1677 Tools Check for New Mail On... 1890 Tools Check Names 361 Tools Design Outlook Form 2519 Tools Empty "Deleted Items" Folder 1671 Tools Find Items... 2683 Tools Letter Wizard... 796 Tools Options... 522 Tools Protect Document 336 Tools Recall This Message... 2511 Tools Record in Journal 1672 Tools Resend This Message... 3165 Tools Services... 1882 Tools Spelling... 2 Vertical Spacing Decrease 1652 Vertical Spacing Increase 1653 Vertical Spacing Make Equal 3138 Vertical Spacing Remove 1654 View Bcc Field 1860 View Calendar... 1987 View Define Views... 1862 View Field Chooser 1748 View Filter... 1752 View Format Columns... 1898 View Format View... 1875 View From Field 1867 View Group By... 1666 View Master Document 2190 View Outlook Bar 2515 View Show Fields... 2009 View Sort... 2916 View Status Bar 850
For more information about creating solutions with Microsoft Outlook 97, please see the following articles in the Microsoft Knowledge Base:
Additional query words: OutSol OutSol97
Keywords: kbhowto kbprogramming KB173604