みなさまこんtにちは、ノグチです。
エクセルVBAでOutlookを操作してみようということで、前回まではエクセルシートに記入された内容を、Outlookのメールで指定した宛先に送信する方法をご紹介してきました。
1件でも複数件でも、固定本文でも本文を変えながらでも、VBAなら簡単にメールが送信できる!ということをご紹介してきました。
しかし、Outlookの手動操作で煩わしいのはメールだけではありませんよね。
Outlookの連絡先も手で登録するのはなかなか面倒臭かったりします。
例えば、お仕事の引継ぎなどで前任者から取引先の連絡先をエクセルシートに記入されたリストで渡されたとしたら…?
それ、エクセルVBAで一括登録できちゃうかもしれませんよ。
ということで、今回はエクセルVBAでOutlookの連絡先を登録する方法をご紹介していきます。
Outlookの連絡先を操作するContactItemオブジェクト
Outlookの連絡先も、VBAでOutlookの新しいメールを作成する時に使用したMailItemオブジェクトのように、新しい連絡先を操作するためのオブジェクトがあります。
それは、ContactItemオブジェクト。
このオブジェクトをCreateItemオブジェクトで作成すると、Outlookで「新しい連絡先」を開いたときのように、新しい連絡先を登録するための、氏名やメールアドレス、連絡先といった項目を指定するプロパティや、連絡先の保存などといったメソッドが使用できます。
CreateItemメソッドでContactItemオブジェクトを作成する
では、ContactItemオブジェクトを作成していきましょう。
まずはContactItem型変数の宣言をします。
そして、CreateItemメソッドでContactItemオブジェクトを作成します。
パラメータにはContactItemオブジェクトを示すolContactItemを指定します。
ContactItemオブジェクトのプロパティ
ContactItemオブジェクトのプロパティには、例えば以下のようなものがあります。
プロパティ名 | 内容 |
---|---|
FirstName | 連絡先の名前 |
LastName | 連絡先の姓 |
Email1Address | 連絡先のメールアドレス1 |
Email1DisplayName | 連絡先の表示名1 |
Companies | 連絡先の勤務先 |
Department | 連絡先の部署 |
JobTitle | 連絡先の役職 |
Outlook XX.X Object Libraryの参照設定を忘れずに
ContactItem型変数の宣言や、CreateItemメソッドでContactItemオブジェクトを作成する前に、VBEでOutlook XX.X Object Libraryの参照設定は忘れずに行っておきましょう。
設定方法は、こちらの記事で紹介していますので、併せてご覧ください。
Saveメソッドで連絡先を登録する
さて、Contactitemオブジェクトのプロパティに値をセットしたら、連絡先として登録してしまいましょう。
連絡先を登録するには、Saveメソッドを使います。
記述方法はとっても簡単。
Outlookの連絡先を登録するコード
ContactItemオブジェクトとプロパティ、Saveメソッドで連絡先を登録しようとすると、こんな感じのコードになります。
Sub CreateCotact() Dim objOutlook As Outlook.Application Dim objContact As Outlook.ContactItem Set objOutlook = New Outlook.Application Set objContact = objOutlook.CreateItem(olContactItem) '連絡先の作成 With objContact .FirstName = "連絡先の名前" .LastName = "連絡先の姓" .Email1Address = "abc@xxx.co.jp" .Email1DisplayName = "連絡先の表示名1" .Companies = "連絡先の勤務先" .Department = "連絡先の部署" .JobTitle = "連絡先の役職" .Save End With End Sub
そして上のコードを実行すると、Outlookの連絡先にはこのように登録されます。
このように、ContactItemオブジェクトのプロパティに指定した値で連絡先が登録されていますね。
最後に
今回は、エクセルVBAでOutlookの連絡先を登録する方法をご紹介しました。
実はOutlookにはエクセルリストやcsvファイルから連絡先をインポートできる機能があります。
しかし、例えば取り込みたい連絡先ファイルが複数ある、しかもリスト形式のデータではない(履歴書や、アンケートの回答のように、指定項目に連絡先が記入してあるようなファイル)といった場合には、今回ご紹介した方法が役立つかもしれません。
それでは、最後までお読みいただきありがとうございました!
連載目次:エクセルVBAでOutlookを操作してみよう!
エクセルVBAでOutlookのメール作成、送信などの操作をする方法をご紹介しています。メーラーとして便利なOutlookですが、VBAと組み合わせて更に便利に使ってしまいましょう。
- 【エクセルVBA】エクセルVBAでOutlookを操作しよう!参照設定とOutlookアプリケーションオブジェクトの取得
- 【エクセルVBA】Outlookでメールを作成・送信する方法
- 【エクセルVBA】エクセルシートに一覧化された複数の連絡先に本文を変えつつOutlookでメールを一括送信する方法
- エクセルVBAでOutlookメールの下書きを作成・表示して送信前に内容チェックする
- エクセルVBAでOutlookの連絡先を登録する方法
- 【エクセルVBA】GetNamespaceメソッドでOutlookのデータフォルダにアクセスする方法
- エクセルVBAでOutlookの受信メールフォルダとサブフォルダ名を書き出す方法
- エクセルVBAでOutlookの受信メールをワークシートに書き出す方法