エクセルVBAでOutlookの連絡先を登録する方法


vba,outlook,contact,eyecatch

みなさまこんtにちは、ノグチです。

エクセルVBAでOutlookを操作してみようということで、前回まではエクセルシートに記入された内容を、Outlookのメールで指定した宛先に送信する方法をご紹介してきました。

【エクセルVBA】エクセルシートに一覧化された複数の連絡先に本文を変えつつOutlookでメールを一括送信する方法
エクセルVBAでOutlookを操作して、複数の送信先に、各メールの本文を変えつつ、メール送信する方法をご紹介しています。メールの冒頭部の宛名をコピペで作成していた方、もしかしたらこの方法でメール送信の手間が軽減できるかもしれません。
エクセルVBAでOutlookメールの下書きを作成・表示して送信前に内容チェックする
OutlookのMailItemオブジェクトのDisplayメソッドを使って、VBAで作成したOutlookのメール内容を、メール送信前にチェックする方法をご紹介しています。「VBAでメールを作成するのは便利だけど、内容をチェックしないでメール送信してしまうのは心配...」という方にお勧めです。

1件でも複数件でも、固定本文でも本文を変えながらでも、VBAなら簡単にメールが送信できる!ということをご紹介してきました。

しかし、Outlookの手動操作で煩わしいのはメールだけではありませんよね。

Outlookの連絡先も手で登録するのはなかなか面倒臭かったりします。

例えば、お仕事の引継ぎなどで前任者から取引先の連絡先をエクセルシートに記入されたリストで渡されたとしたら…?

それ、エクセルVBAで一括登録できちゃうかもしれませんよ。

ということで、今回はエクセルVBAでOutlookの連絡先を登録する方法をご紹介していきます。

スポンサーリンク

Outlookの連絡先を操作するContactItemオブジェクト

Outlookの連絡先も、VBAでOutlookの新しいメールを作成する時に使用したMailItemオブジェクトのように、新しい連絡先を操作するためのオブジェクトがあります。

それは、ContactItemオブジェクト

このオブジェクトをCreateItemオブジェクトで作成すると、Outlookで「新しい連絡先」を開いたときのように、新しい連絡先を登録するための、氏名やメールアドレス、連絡先といった項目を指定するプロパティや、連絡先の保存などといったメソッドが使用できます。

CreateItemメソッドでContactItemオブジェクトを作成する

では、ContactItemオブジェクトを作成していきましょう。

まずはContactItem型変数の宣言をします。

Dim オブジェクト名 As Outlook.ContactItem

そして、CreateItemメソッドでContactItemオブジェクトを作成します。

パラメータにはContactItemオブジェクトを示すolContactItemを指定します。

Outlookアプリケーションオブジェクト.CreatItem(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の参照設定は忘れずに行っておきましょう。

設定方法は、こちらの記事で紹介していますので、併せてご覧ください。

【エクセルVBA】エクセルVBAでOutlookを操作しよう!参照設定とOutlookアプリケーションオブジェクトの取得
エクセルVBAでOutlookのメール送信やタスク作成操作をする前準備として、VBEの参照設定や、Outlookアプリケーションオブジェクトの取得方法をご紹介しています。 VBAとOutlookを組み合わせて使うことで、既に便利に使えているメーラーを更に便利にできるかもしれませんよ。

Saveメソッドで連絡先を登録する

さて、Contactitemオブジェクトのプロパティに値をセットしたら、連絡先として登録してしまいましょう。

連絡先を登録するには、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の連絡先にはこのように登録されます。

vba,outlook,連絡先,登録このように、ContactItemオブジェクトのプロパティに指定した値で連絡先が登録されていますね。

最後に

今回は、エクセルVBAでOutlookの連絡先を登録する方法をご紹介しました。

実はOutlookにはエクセルリストやcsvファイルから連絡先をインポートできる機能があります。

しかし、例えば取り込みたい連絡先ファイルが複数ある、しかもリスト形式のデータではない(履歴書や、アンケートの回答のように、指定項目に連絡先が記入してあるようなファイル)といった場合には、今回ご紹介した方法が役立つかもしれません。

それでは、最後までお読みいただきありがとうございました!

連載目次:エクセルVBAでOutlookを操作してみよう!

エクセルVBAでOutlookのメール作成、送信などの操作をする方法をご紹介しています。メーラーとして便利なOutlookですが、VBAと組み合わせて更に便利に使ってしまいましょう。

  1. 【エクセルVBA】エクセルVBAでOutlookを操作しよう!参照設定とOutlookアプリケーションオブジェクトの取得
  2. 【エクセルVBA】Outlookでメールを作成・送信する方法
  3. 【エクセルVBA】エクセルシートに一覧化された複数の連絡先に本文を変えつつOutlookでメールを一括送信する方法
  4. エクセルVBAでOutlookメールの下書きを作成・表示して送信前に内容チェックする
  5. エクセルVBAでOutlookの連絡先を登録する方法
  6. 【エクセルVBA】GetNamespaceメソッドでOutlookのデータフォルダにアクセスする方法
  7. エクセルVBAでOutlookの受信メールフォルダとサブフォルダ名を書き出す方法
  8. エクセルVBAでOutlookの受信メールをワークシートに書き出す方法

タイトルとURLをコピーしました