この例では、ファイル システムのフォルダーに入っているすべての vCard ファイルをインポートし、連絡先を targetFolder パラメーターで指定されたフォルダーに保存します。
例
次の例では、 OpenSharedItem メソッドを使用します。 OpenSharedItem メソッドは、Outlook メッセージ形式 (.msg) ファイル、iCalendar 予定 (.ics) ファイル、または vCard (.vcf) ファイルとして格納されているメッセージを開きます。 アイテムを保存するには、返されたオブジェクトを適切なアイテムの種類にキャストし、対応する Save メソッドを呼び出します。 既定では、 OpenSharedItem によって返されるアイテムは、特定のアイテムの種類に対する既定のフォルダーに保存されます。 対応する Move メソッドを使用すると、アイテムを別のフォルダーに移動できます。
Visual Studio を使用してこのコード例をテストする場合、Microsoft.Office.Interop.Outlook 名前空間をインポートするときに、まず Microsoft Outlook 15.0 オブジェクト ライブラリ コンポーネントへの参照を追加し、Outlook 変数を指定します。 Imports または using ステートメントは、コード例の関数の前に直接置くことはできません。パブリック Class 宣言の前に追加する必要があります。 次のコード行は、Visual Basic および C# でインポートおよび割り当てを行う方法を示しています。
Imports Outlook = Microsoft.Office.Interop.Outlook
using Outlook = Microsoft.Office.Interop.Outlook;
Private Sub ImportContacts( _
ByVal path As String, ByVal targetFolder As Outlook.Folder)
Dim contact As Outlook.ContactItem
Dim moveContact As Outlook.ContactItem
If (Directory.Exists(path)) Then
Dim files As String() = Directory.GetFiles(path, "*.vcf")
For Each file As String In files
contact = CType(Application.Session.OpenSharedItem(file), _
Outlook.ContactItem)
If (targetFolder Is _
CType(Application.Session.GetDefaultFolder( _
Outlook.OlDefaultFolders.olFolderContacts) _
, Outlook.Folder)) Then
contact.Save()
Else
moveContact = CType(contact.Move(targetFolder), _
Outlook.ContactItem)
moveContact.Save()
End If
Next
End If
End Sub
private void ImportContacts(string path, Outlook.Folder targetFolder)
{
Outlook.ContactItem contact;
Outlook.ContactItem moveContact;
if (Directory.Exists(path))
{
string[] files = Directory.GetFiles(path, "*.vcf");
foreach (string file in files)
{
contact = Application.Session.OpenSharedItem(file)
as Outlook.ContactItem;
if (targetFolder ==
Application.Session.GetDefaultFolder(
Outlook.OlDefaultFolders.olFolderContacts)
as Outlook.Folder)
{
contact.Save();
}
else
{
moveContact = contact.Move(targetFolder)
as Outlook.ContactItem;
moveContact.Save();
}
}
}
}