※VBAで、といいつつJScript。
既定の予定表は、こんな感じでFolderオブジェクトを得られる(JScript)
ここの環境は、以前、別のOffice環境から移行してきたデータファイルがあるため、左のように複数の予定表フォルダがある。これに対応するFolderオブジェクトを取得したい。(で、配下の予定表アイテムを列挙、といきたい)
FolderのEntryIDが事前に分かっていれば、NameSpaceから取得できるようなんだけど・・・。
「おれおれフォルダ→予定表」にあたるFolderオブジェクトのFolderPathは
"\\おれおれフォルダ\予定表"
になることがわかったので、ルートから順番に辿ってパスで判断することに。
既定の予定表は、こんな感じでFolderオブジェクトを得られる(JScript)
var app = new ActiveXObject("Outlook.Application");
var ns = app.GetNamespace("MAPI");
var folder = ns.GetDefaultFolder(olFolderCalendar);
※olFolderCalendarは9
ここの環境は、以前、別のOffice環境から移行してきたデータファイルがあるため、左のように複数の予定表フォルダがある。これに対応するFolderオブジェクトを取得したい。(で、配下の予定表アイテムを列挙、といきたい)
FolderのEntryIDが事前に分かっていれば、NameSpaceから取得できるようなんだけど・・・。
「おれおれフォルダ→予定表」にあたるFolderオブジェクトのFolderPathは
"\\おれおれフォルダ\予定表"
になることがわかったので、ルートから順番に辿ってパスで判断することに。
■folders.js
/**
* Enum folders(and its itemtype) of Outlook(!=express).
*
* usage:
* cscript.exe folders.js
*
* Tried env.
* Outlook 2003 SP3 + XP Prof SP2(ja)
* Outlook 2007 SP1 + Vista Ultimate SP1 x64(ja)
*/
if( !WScript.FullName.match( /cscript\.exe$/i ) )
{
WScript.echo( "run me under cscript.exe");
WScript.Quit();
}
var app = new ActiveXObject("Outlook.Application");
var ns = app.GetNamespace("MAPI");
traverse( ns );
function traverse( folder )
{
if( folder.FolderPath )
{
WScript.echo( folder.FolderPath + ": " + folder.DefaultItemType );
}
else
{
WScript.echo( folder );
}
var folders = folder.Folders;
for( var i = 1 ; i <= folders.Count ; i++ )
{
traverse( folders(i) );
}
}