Outlook Tips and Techniques - 03 Feb 2000


How can users check the size of their mailboxes?

The method for checking mailbox size varies according to the version of Outlook. In Outlook 2000, right-click Outlook Today or any folder, and choose Properties. On the General tab of the Properties page, click Folder Size. Screen 1 shows the summary of my Inbox folder and all its subfolders.

Outlook 98 works the same way as Outlook 2000, but occasionally the Folder Size button disappears from the folder's Properties sheet. If the button disappears, a missing Windows Registry entry is to blame. Run regedit or, under Windows NT, regedt32. Look under the HKEY_CURRENT_USER\ Software\Microsoft\Office\8.0\Outlook Registry key for the ChkFldrSize value. If the value is present, set the value to 1 to turn folder size checking on. If the value isn't present, create a new DWORD value named ChkFldrSize and set it to 1. (Setting the value to 0 disables the folder size check feature.) As always, make a backup of the Registry before you begin making changes.

Microsoft didn't build folder-size checking into Outlook 97. However, you can download the Three-Pane Preview Extension for Outlook 97 from http://officeupdate.microsoft.com/ downloaddetails/ol3pane.htm. In addition to adding a preview pane, the extension also adds a menu command (File, Folder, Folder Size) that checks the size of the current folder for you.

Can I tag a message in Outlook 2000 so that recipients can't send mail unless they read the message?

My guess is that the person who asked this question wants to be able to ensure that users read a company policy statement before they can send mail. A message can't handle this chore because it doesn't exert any application-level control. Also, Outlook can't prohibit users from deleting messages without reading them.

A more satisfactory solution is a COM add-in that displays a message box when Outlook starts and asks the user to accept the policy. If the user doesn't accept the policy, Outlook quits immediately. A COM add-in is the best way to distribute Outlook 2000 applications written with either Visual Basic for Applications (VBA) or Visual Basic (VB). You need Microsoft Office 2000 Developer (MOD) to build COM add-ins with VBA.

I don't have space here to get into the details of building COM add-ins, but I've collected references on COM add-ins at http://www.slipstick.com/ dev/comaddins.htm. If you want to experiment with the code required for the kind of user confirmation I mentioned here, try putting the code in Listing 1 in the built-in ThisOutlookSession module in Outlook's VBA editor.

How can I create a folder filter that shows only dates that Outlook displays as None?

The None date looks great onscreen but can be difficult to work with. What does None really mean? Programmers know that Outlook stores dates that you see as None as the date 1/1/4501. However, you can't use that date to create a folder filter for items that have no date set.

Instead, you need to create a filter that checks whether the property does not exist. (Get to the filter dialog box from View, Current View, Customize Current View, Filter.) Screen 2 shows how you create a filter for the Tasks folder by setting the Due Date field to the condition does not exist. This setting will display all the Tasks that have a Due Date of None.

How can I show the age of an Outlook contact, not just the contact's birthday?

This display is a job for a formula field that you add to the Contacts folder. Create the field with these steps:

  1. Choose View, Current View, Customize Current View, Fields, then click New Field.
  2. Give the field a name (e.g., YearsOld), and set the type to Formula.
  3. Click Edit, and enter this formula in the Formula Field dialog box:
    IIf(\[Birthday\]  "None",
       DateDiff("yyyy", \[Birthday\],
       CDate(Month(\[Birthday\]) & "/"
       & Day(\[Birthday\]) & "/" &
  4. Click OK three times to return to the Outlook folder view, in which you can now see numbers in the YearsOld field.

This formula works for everyone except the fortunate few born on February 29 in a leap year. I know the formula looks complicated (I wrote three versions before I got it right), but it includes six common functions often used in formulas, which Table 1, page 8, lists.

The formula's logic is something like this: If the contact has a birthday (the first IIf() function), then find the difference in years between the current date and the birthday (the first DateDiff() function). If the birthday hasn't yet occurred during the current year (the second IIf() function), subtract 1 year to account for an oddity with the DateDiff() function (I'll talk more about this oddity in a moment). Use the Month(), Day(), and Year() functions to build a string that represents the date on which the birthday falls during the current year (e.g., "5/19/2000"). Use the CDate() function to convert that string to a date, which the formula can then use with the second DateDiff() function to check whether the birthday has already occurred this year. If the contact has no birthday listed, leave the field blank.

So what's odd about DateDiff()? When you use this function to measure years, it rounds up. For example, if Joe's birthday is May 19, 1967, and today's date is April 15, 2000, Joe is currently 32 years old. He won't turn 33 until May 19. However, the expression DateDiff("yyyy",#5/19/1967#,Date) would return 33. Without that complication, the formula could be

IIf(\[Birthday\]  "None", 
  \[Birthday\], Date()), "")

Here are a couple of additional notes about this technique. Did you notice the "None" value in the first argument for the first IIf() function? In contrast to the methods discussed in the previous question, in a formula, you use the word None to check for an empty date. Also, because YearsOld is a formula-type field, you can't sort or group on that field. If you want to see just people of a certain age, you can use the YearsOld field to create a filter.

Can I remove the Home and Home 2 phone numbers from the display of address details in the Global Address List (GAL)?

Consider the situation in which management wants to keep all employee information in the GAL but hide the information from the users. (The information will still be available in the Microsoft Exchange Administrator program.) You can address this need by editing the address book template found in Exchange Administrator under \Site\Configuration\Addressing\Details Templates\language. Follow these steps to remove the Home and Home 2 fields:

  1. Double-click the Mailbox template to open it.
  2. Switch to the Templates tab, which you see in Screen 3. Ugly, isn't it? The dialog box doesn't offer a pretty graphical interface. The numbers in the X, Y, W, and H columns represent horizontal position, vertical position, width, and height, respectively.
  3. Click Remove to delete the following four controls:
    • Label—&Home:
    • Edit—Home phone number
    • Label—H&ome 2:
    • Edit—Home phone number 2
  4. Click Test to see the altered template, which Screen 4 shows. The template no longer shows the Home and Home 2 fields. Click OK when you finish testing.
  5. Click OK when you complete all changes to the template.

If you make a mistake and want to start over, you can go back to the Templates tab and click Original to restore the default template.

This change affects only the current site, as you might guess from the fact that \Addressing\Details Templates appears in the \Site\Configuration tree in Exchange Administrator. This change also affects only the template that Outlook and Exchange clients view with the Microsoft Exchange Server service in their Messaging API (MAPI) profiles. If you also have users doing Lightweight Directory Access Protocol (LDAP) lookups on the GAL, those users will continue to see the Home number listed under Phone on the Home tab.

So how do you suppress the number for LDAP lookups? The Microsoft article "HOWTO: Determine LDAP Name for Exchange Server Objects" (http://support.microsoft.com/ support/kb/articles/q237/6/82.asp) gave me the clue I needed. I followed the article's instructions for starting the Exchange Administrator program in raw mode and viewing the directory schema, then zeroed in on the Description attribute of the Home phone number field. I changed the value of that attribute from homephone to xhomephone. After that, LDAP lookups didn't show the home number. As with all operations in raw mode, make this kind of change at your own risk and with thorough testing. This change might create problems with Active Directory (AD) in Windows 2000 (Win2K), which depends on LDAP lookups for synchronization.

Why do Journal entries tend to be so large?

When you're hunting for ways to reduce the amount of storage space a mailbox occupies, one of the first places to look is the Journal folder. If a user turned on automatic journaling of Outlook items and Office documents, you might find a Journal folder full of items, each 2KB to 8KB large. Each automatically created Journal item contains a shortcut to the related item or document. Those items with shortcuts to Microsoft Word and Microsoft Excel documents tend to be around 2KB to 3KB, and those with shortcuts to other Outlook items are more than twice as large—7KB to 8KB.

If you're using Outlook 2000, the new Activities tab automatically looks for related items in various Outlook folders, without automatically creating Journal entries with shortcuts. Therefore, if you've recently upgraded from Outlook 97 or Outlook 98 to Outlook 2000, you might consider turning off journaling (Tools, Options, Journal Options) for Outlook items and deleting at least some of those old Journal items that point to related Outlook items.

Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.