Via your scripts, you can add Contacts, Journal and Calendar entries with ease. No bull.
Outlook Automation with OLE
Via your scripts, you can add Contacts, Journal and Calendar entries with ease. No bull.
- By Chris Brooke
- 05/01/2001
Q: What do a matador and
Office automation have in common?
A: OLE. Sorry you had to
be subjected to that. My wife is due any day now, and
I’m not thinking very clearly. And while I’m not going
to be spending any more precious words talking about bullfighting,
I will be finishing up my discussion of automation, which
is made possible by what? Yes... OLE!
Last month we used automation to open Outlook and send an e-mail alert.
However, Outlook isn’t just e-mail. It includes Tasks, Calendar, Journal
and Contacts. Today, we’re going to look at adding contact information
from within your scripts.
' NewContact.vbs
Option Explicit
Dim objOutlook, objContact
' Start Outlook.
Set objOutlook = CreateObject("Outlook.Application")
' Create and Open a new contact.
Set objContact = objOutlook.CreateItem(2)
' 2=Outlook Contact Item
' Setup Contact information...
With objContact
.FullName = "Chris Brooke"
.Birthday = "4/12/1965"
.CompanyName = "ComponentSource"
.HomeTelephoneNumber = "770-250-6100"
.Email1Address = "[email protected]"
.JobTitle = "Product and Technology Editor"
.HomeAddress = "3391 Town Point Drive Suite 350"
&
vbCr & "Kennesaw, GA 30144"
End With
' Save Contact...
objContact.Save
The first thing I’m sure you’ve noticed is the use of color in the script.
This style follows the Visual Basic standard to make the script easier
to analyze. Reserved words are in blue and comments are in green. Even
though our perennial favorite script editor Notepad (or “Visual Notepad,”
as it’s called by true believers) doesn’t allow different colors, I include
them to 1) make things clearer, and 2) get you on the road to thinking
like a VB programmer (you know you love it!).
First, I create an instance of Outlook the same as before. The only difference
is that I then create a contact item rather than a mail item. If instances
are already open, they’ll be used automatically. By now, I’m sure you’ve
started to see a pattern emerging. This same script can be used—with minor
modifications—to create a Journal entry, Calendar entry and so on.
The “meat” of the script is the section in which I simply create a Contact
item, add the information, and save it to the mailbox. In this script
I’m saving it to the Contacts folder of the current mailbox. If I wanted
to, I could save the information in a Contacts folder in the Public folders
of my Exchange Server.
Homework
Now, rarely are you going to “hard-wire” Contact information into your
script. Rather, you’ll want to import it from a text file, database, Excel
spreadsheet or Word document. This could be done using the FileSystemObject
that I’ve explored previously (depending on the file format that the data
is saved in), but wouldn’t it be much better to use the associated application
to get at the data? The answer is, of course, a resounding “Yes!” Chances
are, you’re likely to receive contact information in a spreadsheet or
delimited file that you can open in Excel. Using Excel automation you
can write a script to retrieve the information from the spreadsheet and
add it to Outlook. Hmm... sounds like a good assignment for homework!
I’ll even give you some pointers for opening Excel spreadsheets using
automation:
- Remember to specify the proper worksheet.
- Remember to have a clear and standard format for these documents.
- Be prepared to do some real digging into the Excel object model.
One final word of advice: In order to effectively automate this process,
you’ll need a pretty big LOOP (best handled by using Subs and Functions—remember
those?) and some error handling. You’ll need to be prepared for importing
from a file that could possibly not (say it isn’t so!) be in the correct
format. For the purposes of your homework, however, I’ll only be grading
on “getting the job done.” In other words—you can assume that the file
is clean and in the proper format.
Now It Gets Interesting
One of the really cool things about automation is that you have a high
level of control over document properties, attributes and so on. This
is used primarily for embedding Office functionality into, say, a Visual
Basic application. For the purposes of admin scripting, you aren’t likely
to use most of these exposed features, but it’s good to know that they’re
there, just in case.
Also, don’t forget that you can create documents using automation as
easily as you can open/read them. Again, this is best used when you need
to automate functions such as embedding a spreadsheet into a Word document
or changing the properties of existing documents. If you ever get to the
point when you’re using scripts to create documents from scratch, you
have way too much free time!
Coming Up
Next month I’ll announce the second winner in our “Scripting Suggestions”
e-mail campaign. I’ll try to get it written before the baby gets here.
Otherwise, you may be subjected to even more stupid jokes brought on by
2 a.m. feedings and a sudden upswing in the amount of baby talk and incoherent
“cooing” coming from my mouth.
Shortly after submitting this article, the columnist was pleased to
report the birth of Samuel John Brooke. Mother and son are doing fine.
About the Author
Chris Brooke, MCSE, is a contributing editor for Redmond magazine and director of enterprise technology for ComponentSource. He specializes in development, integration services and network/Internet administration. Send questions or your favorite scripts to [email protected].