Excel VBAでOutlookの予定表を取得する記事は多数あったが、JScriptでの実装方法を記した記事はほとんど見つからなかったので備忘録としてまとめる。
公式リファレンスを見ながら手探りで作ったのでおかしな点があるかもしれない。(そもそも公式のサンプルもVBやC#ばかりでJScriptでのサンプルは見当たらない)
あと、JScript触れたのは今回が初。
var START = "2021/2/1";
var END = "2021/2/4";
// フォルダーの種類を指定
var olFolderCalendar = 9; // 9が予定表を指す
// outlookオブジェクトと名前空間生成
var olObj = new ActiveXObject("Outlook.Application");
var olNameSpace = olObj.GetNamespace("MAPI")
// フィルタを設定して予定表を取得
var appointments = olNameSpace.GetDefaultFolder(olFolderCalendar).Items;
appointments.Sort("[Start]"); // 開始日でソート
appointments.IncludeRecurrences = true; // 定期的な予定も検索に含める。通常、定期的な予定は特定の日付と関連していないため取得されない。
appoObj = appointments.Find("[Start] >= '" + START + "' And [Start] <= '" + END + "'");
// 取得したAppointmentItemsから予定取得
while(appoObj){
// ここでは題名、開始時刻、終了時刻、会議出席者を取得している
WScript.StdOut.WriteLine(appoObj.Subject + "," + appoObj.Start + "," + appoObj.End + "," + appoObj.RequiredAttendees);
// 次の予定へ
appoObj = appointments.FindNext;
}
リファレンス