次の方法で共有


Office Space: Microsoft Outlook で新しい連絡先を作成する

Office Space

Office Space へようこそ。Office Space は、Microsoft® Office アプリケーションのスクリプト作成に関するヒントとテクニックを紹介する新しいコラムです。過去のヒントについては、Office Space アーカイブを参照してください。Microsoft Office でのスクリプト作成について質問がある場合は、scripter@microsoft.com (英語のみ) までお送りください。すべての質問に回答することはできないかもしれませんが、可能な限り対応いたします。

Microsoft Outlook で新しい連絡先を作成する

1 ~ 2 週間前、このコラムで Microsoft Outlook のスクリプトを増やすとお約束しました。Scripting Guys は必ず約束を守ります。

いやいや、約束を守る場合もあると言っておきましょう。

まあ、何事も最初が肝心です。お待たせしました。

今回は、Microsoft Outlook の新しい連絡先を作成するスクリプトを紹介します。 ** まず、連絡先を作成する基本的なスクリプトを示します。次に、より実用的なシナリオ (Excel スプレッドシートから情報を読み取り、スプレッドシートの一覧から各個人の連絡先項目を作成するスクリプト) を紹介します。

これは簡単で便利なスクリプトだと思いませんか。

このスクリプトの説明に入る前に、連絡先の作成に関する基本原則を理解しているかどうかを確認しておきましょう。Ken Myer の連絡先を作成するスクリプトを次に示します。このスクリプトでは、連絡先のいくつかのプロパティも入力します。

Const olContactItem = 2

Set objOutlook = CreateObject("Outlook.Application")
Set objContact = objOutlook.CreateItem(olContactItem)

objContact.FullName = "Ken Myer"
objContact.Email1Address = "kenmyer@fabrikam.com"
objContact.CompanyName = "Fabrikam"
objContact.JobTitle = "Network Administrator"
objContact.HomeTelephoneNumber = "555-555-8888"
objContact.HomeAddress = "3725 205th NE" & vbCrLf & "Redmond, WA 98052"
objContact.Birthday = "9/15/1966"

objContact.Save

連絡先の作成がこんなに簡単なら、このコラムをもっと早く書いてもよかったじゃないか、と思われるかもしれません。ご覧のとおり、まずは定数 olContactItem を定義し、この定数の値を 2 に設定します。この定数で、作成項目の種類を Outlook に通知します。次に、Outlook に接続し (Outlook が動作していることが前提です)、CreateItem メソッドを呼び出して、新しい連絡先を作成します。

Set objOutlook = CreateObject("Outlook.Application")
Set objContact = objOutlook.CreateItem(olContactItem)

次に、FullName、Email1Address、CompanyNameNext などの連絡先プロパティに値を代入します。これらのプロパティは連絡先プロパティの一部にすぎません。連絡先プロパティの完全な一覧については、MSDN の Microsoft Outlook 用の「VBA Language Reference」(英語) を参照してください。目的のプロパティの値を設定したら、Save メソッドを呼び出して新しい連絡先を保存します。

objContact.Save

これで完成です。

今度は、Excel スプレッドシートから情報を読み取り、スプレッドシートの一覧から各個人の連絡先項目を作成するスクリプトについて説明します。まず、次のような単純なスプレッドシートがあるとします。

Microsoft Excel

このスプレッドシート (C:\Scripts\Contacts.xls) に記録されている 3 人の連絡先項目を作成するスクリプトを次に示します。

Const olContactItem = 2

Set objOutlook = CreateObject("Outlook.Application")

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Scripts\contacts.xls")

x = 1

Do Until objExcel.Cells(x,1).Value = ""

    Set objContact = objOutlook.CreateItem(olContactItem)
    objContact.FullName = objExcel.Cells(x,1).Value
    objContact.CompanyName = objExcel.Cells(x,2).Value
    objContact.Email1Address = objExcel.Cells(x,3).Value
    objContact.Save

    x = x + 1
Loop

objExcel.Quit

Excel コードについては詳しい説明を省略します。Excel コードの詳細については、MSDN の該当する Scripting Guys の記事を参照してください。何から何まで紹介するという約束はしていませんよね。 **

約束したじゃないかって? どうも忘れっぽいようです。