予定表で指定した期間内の空き時間スケジュールを共有する
この例では、予定表の指定した週の空き時間スケジュールを取得し、ユーザーに対して予定の有無と件名を表示します。
例
このコード例では、Folder オブジェクトの GetCalendarExporter メソッドを使用して既定の予定表フォルダーの CalendarSharing オブジェクトを、指定された特定の週にわたって取得します。 その後、 CalendarSharing オブジェクトの ForwardAsICal メソッドを呼び出し、iCalendar ペイロードを含むメッセージを表示します。
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 DemoCalendarSharing()
' Get instance of CalendarSharing object
Dim calShare As Outlook.CalendarSharing = _
Application.Session.GetDefaultFolder( _
Outlook.OlDefaultFolders.olFolderCalendar). _
GetCalendarExporter()
' Free busy and subject details
calShare.CalendarDetail = _
Outlook.OlCalendarDetail.olFreeBusyAndSubject
' Set start and end dates
calShare.StartDate = DateTime.Today
calShare.EndDate = calShare.StartDate.AddDays(1)
' Call ForwardAsICal method
Dim mail As Outlook.MailItem = _
calShare.ForwardAsICal( _
Outlook.OlCalendarMailFormat.olCalendarMailFormatDailySchedule)
' Add recipient
mail.Recipients.Add("someone@example.com")
mail.Recipients.ResolveAll()
' Set subject
Dim CalName As String = _
Application.Session.GetDefaultFolder( _
Outlook.OlDefaultFolders.olFolderCalendar).Name
mail.Subject = _
Application.Session.CurrentUser.Name & _
CalName.PadLeft(CalName.Length + 1)
' Display calendar sharing item
mail.Display(False)
End Sub
private void DemoCalendarSharing()
{
// Get instance of CalendarSharing object
Outlook.CalendarSharing calShare =
Application.Session.GetDefaultFolder
(Outlook.OlDefaultFolders.olFolderCalendar).
GetCalendarExporter();
// Free busy and subject details
calShare.CalendarDetail =
Outlook.OlCalendarDetail.olFreeBusyAndSubject;
// Set start and end dates
calShare.StartDate = DateTime.Today;
calShare.EndDate = calShare.StartDate.AddDays(1);
// Call ForwardAsICal method
Outlook.MailItem mail =
calShare.ForwardAsICal(Outlook.OlCalendarMailFormat
.olCalendarMailFormatDailySchedule);
// Add recipient
mail.Recipients.Add("someone@example.com");
mail.Recipients.ResolveAll();
// Set subject
string CalName =
Application.Session.GetDefaultFolder
(Outlook.OlDefaultFolders.olFolderCalendar).Name;
mail.Subject =
Application.Session.CurrentUser.Name +
CalName.PadLeft(CalName.Length + 1);
// Display calendar sharing item
mail.Display(false);
}