2016-11-04 50 views
0

Matlabを使用して、共有Outlook予定表のグループから予定表の予定を取得しています。特定の期間内に定期的な予定と非定期的な予定の両方を含める必要があります。このコードは、動作している: Matlabを使用してOutlook予定表アイテムを取得する

outlook = actxserver('Outlook.Application'); 
    mapi = outlook.GetNamespace('mapi'); 
    explorer = mapi.GetDefaultFolder(9).GetExplorer; 
    NavModule = explorer.NavigationPane.Modules.GetNavigationModule(1); 
    NavGroup = NavModule.NavigationGroups.GetDefaultNavigationGroup(2); 

    filter = {['[Start] >= ''',strDATstart,''' AND [Start] <= ''', strDATend, '''']}; 

    for i=1:NavGroup.NavigationFolders.Count 
     NavFolder = NavGroup.NavigationFolders.Item(i); 
     LST = NavFolder.Folder.Items; 
     LST.IncludeRecurrences = -1; 
     LST.Sort('[Start]'); 
     LST.Restrict(filter{1}); 
     etc. 

私はフィルタによって設定された日付の範囲外であったリストから項目を削除する方法を制限予想(strDATstartとstrDATendは、コードの他の場所で設定されています)。しかし、Restrictメソッドが期待どおりに動作しておらず、LSTは2147483647 Itemsを返します(正当ではないと思われますが、何らかのオーバーフロー状態を表します)。返されるItemsのほとんどは空ですが、リストの全体的なサイズによって、私のコードは非常に遅くなります。

日付範囲内でこれらの予定をよりよく取得またはフィルタリングする方法については、ご指摘いただきありがとうございます。

+0

いいえ、リストのサイズではありません。それはヘキサで-1です7FFFFFFF –

答えて

0

Items.Restrictは、新しい(制限された)コレクションを返す関数です。返されたオブジェクトを使用する必要があります。

関連する問題