MORE INFORMATION
There are several situations where you might want to change
the form that is used for all the items in a folder. For example:
- You use the default Outlook form to enter 10 contacts into your Contacts folder. You then create a custom form for contacts and enter 10 additional contacts. You want the first 10 contacts to use the new custom form when they are opened.
- You create a custom form for contacts and enter 10 contacts using the custom form. You then import 100 contacts from a text file. The 100 imported contacts use the default form instead of the custom form.
- You drag and drop items from one folder to another. After moving the items, they do not open with a custom form even though a custom form is set as the default for the folder.
A property of the item called message class determines the form the item uses. You cannot change the message class of an item manually. However, you can write Visual Basic Scripting Edition (VBScript) or Visual Basic Automation code to change the message class for all items in a folder.
When you create and publish a custom form, the form is assigned a message
class. This message class determines which form is associated with an item.
The format of the name is "IPM.
FormType.
FormName", where
FormType is the type of form (Contact, Task, and such) and
FormName is the name of the custom form. For example, if you create a new contact form, name it Revised, and then publish it to your Contacts folder, the message class is IPM.Contact.Revised.
NOTE: In each of the following operations, it is imperative that the new message class name be entered exactly as the name used when the form was published.
The following table lists the various names used for message classes:
Item Default folder Default Message Class
------------- -------------- ---------------------
Contact Contacts IPM.Contact
Task Tasks IPM.Task
Appointment Calendar IPM.Appointment
Note Notes IPM.StickyNote
Journal Entry Journal IPM.Activity
Mail Inbox IPM.Note
NOTE: You cannot customize and publish the Note form.
To see the message class for an existing item, add the message class field
as one of the columns in the current view. The message class in this view
is read-only; you cannot type in a different message class to change the
form manually.
To add the message class to your view, follow these steps:
- Change the view to a table view, such as the Phone List view in the the Contacts folder.
- Right-click the column-header in the view, and on the shortcut menu, click Field Chooser.
- In the Field Chooser list, click to select All Contact Fields.
- Drag the Message Class field to the view column-header to add the field as a column.
Changing the Message Class field of existing items requires that you use
Visual Basic Scripting Edition (VBScript) code within an Outlook form, or
Visual Basic code from another program to automate Outlook and change the
Message Class fields.
You can use any of the following methods to change the Message Class fields.
Method 1: Download the Omsgclas.exe Utility
Download Omsgclas.exe, which contains a Word 97/2000/2002 document with a macro that changes Outlook message classes. This is the same utility that was available for Outlook 97 and Word 97. It also works with Outlook 2002 and Word 2002. The macro runs automatically when you open the document.
When you open Omsgclas.doc, you may find that the Word document will open but the macro will not run. To correct this problem, you must lower the macro security in Word. While in Word, click the
Tools menu, point to
Macro, and then click
Security. Change the security to low or medium. This will enable the macro to run after you re-open the file.
For additional information about obtaining the Omsgclas.exe file, click the article number below
to view the article in the Microsoft Knowledge Base:
201089 OL2002: Word Document to Change Message Class of Outlook Items
Method 2: Use a Third-party Utility
There are other third-party utilities available that will update message class fields. The Slipstick Systems Web site provides a list of these utilities:
The third-party products that are discussed in this article are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.
Method 3: Create a VBScript Routine
NOTE: You should use this method only if you do not have Microsoft Word 97/2000/2002, or you cannot obtain the Omsgclas.exe file.
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 a Microsoft Certified Partner or the Microsoft fee-based
consulting line at (800) 936-5200. For more information about Microsoft Certified
Partners, please visit the following Microsoft Web site:
For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:
Follow the steps below to create and run a VBScript routine that will
change all the items in a folder to a specified form. This example assumes
that you have published a new form called MyNewForm in the current folder.
If you use a different name for your form, modify the form name used in
the third line of code in the section "Enter the VBScript Code."
There are four steps you must take:
- Create a new item to store the VBScript code.
- Enter the VBScript code and save the form.
- Publish the form.
- Use the new form.
Create a New Item to Store the VBScript Code
- On the File menu, point to New, and then click Mail Message.
- On the Tools menu, point to Forms, and then click Design This Form to enter form design mode.
Enter the VBScript Code and Save the Form
- On the Form menu, click View Code.
- In the Script Editor, type the following code. You do not need to enter the lines that begin with an apostrophe, since these lines are comments that are ignored when executed.
Sub Item_Open
' Change the following line to your new Message Class
NewMC = "IPM.Contact.MyNewForm"
Set CurFolder = Application.ActiveExplorer.CurrentFolder
Set AllItems = CurFolder.Items
NumItems = CurFolder.Items.Count
' Loop through all of the items in the folder
For I = 1 to NumItems
Set CurItem = AllItems.Item(I)
' Test to see if the Message Class needs to be changed
If CurItem.MessageClass <> NewMC Then
' Change the Message Class
CurItem.MessageClass = NewMC
' Save the changed item
CurItem.Save
End If
Next
MsgBox "Done."
End Sub
- On the File menu in Script Editor, click Close to return to the form.
Publish the New Form
- On the Tools menu, point to Forms and click Publish Form As.
- In the "Look in" list click to select Personal Forms Library. Type a name for your new form such as, "Message Classes" (without the quotation marks) and then click Publish.
- On the File menu, click Close, and then click No to close without saving.
Use the New Form
- Click to select the folder containing the contacts you want to update.
- On the File menu, point to New and click Choose Form.
- In the Look In list, click to select Personal Forms Library, click your new form and click Open.
- Wait while the code changes the message class for all of the items in the currently selected folder. Depending on the number of items, this may take several minutes. When the code finishes, you should receive a message that says Done.
NOTE: If you wish to edit the VBScript code later to change the name of the message class, hold down the SHIFT key when you open the item. This
prevents the VBScript code from executing and you can go into design mode,
make changes to the VBScript code, and then republish the form.