本ページには広告が含まれています。
目次
Outlookのメールや予定表、連絡先といった様々なデータにアクセスすることができます。
NameSpace オブジェクト を返すメソッド・プロパティ
- Application.GetNamespace メソッド
- 指定した種類のNameSpace オブジェクトを返します。
メソッド
<表示切り替え>- GetDefaultFolder
- 現在のプロファイルで要求された種類の既定のフォルダを表すFolder オブジェクトを返します。
プロパティ
<表示切り替え>- Type
- 指定したオブジェクトの種類を示す文字列を返します。
プログラム実行例
アカウント毎に迷惑メールの件数を集計(Outlook)
DIM Outlook = CREATEOLEOBJ("Outlook.Application")
DIM NameSpace = Outlook.GetNameSpace("MAPI")
DIM Folders = NameSpace.Folders
FOR oFolder IN Folders
//PRINT "■" + oFolder.Name
Folder = NameSpace.Folders(oFolder.Name).Folders("迷惑メール")
PRINT oFolder.Name + ":" + Folder.Items.Count + "件"
NEXT
結果
Yahoo!: 42516件
Android: 0件
使用関数
指定期間に受信したメールの添付ファイルをすべて保存(Outlook)
CONST olFolderInbox = 6
DIM Outlook = CREATEOLEOBJ("Outlook.Application")
DIM NameSpace = Outlook.GetNameSpace("MAPI")
DIM Folder = NameSpace.GetDefaultFolder(olFolderInbox)
DIM Items = Folder.Items
DIM start = "2021/01/01"
DIM end = "2021/01/31"
Items = Items.Restrict("[ReceivedTime] >= '" + start + "' AND [ReceivedTime] <= '" + end + "'")
DIM folderspec = "D:\Desktop\Outlook\"
CreateFolders(folderspec)
DIM row = 1
FOR MailItem IN Items
FUKIDASI(row + "/" + Items.Count)
FOR i = 1 TO MailItem.Attachments.Count
DIM Attachment = MailItem.Attachments.Item(i)
DIM path = folderspec + Attachment
path = uniqueFilename(path)
Attachment.SaveAsFile(path)
PRINT path
NEXT
row = row + 1
NEXT
//////////////////////////////////////////////////
// 【引数】
// folderspec : 作成するフォルダのパス
// 【戻り値】
//
//////////////////////////////////////////////////
PROCEDURE CreateFolders(folderspec)
WITH CREATEOLEOBJ("Scripting.FileSystemObject")
folderspec = .GetAbsolutePathName(folderspec)
IF !.DriveExists(.GetDriveName(folderspec)) THEN EXIT
DIM parentPath = .GetParentFolderName(folderspec)
IF !.FolderExists(parentPath) THEN CreateFolders(parentPath)
IF !.FolderExists(folderspec) THEN .CreateFolder(folderspec)
ENDWITH
FEND
//////////////////////////////////////////////////
// 【引数】
// path : ファイルのパス
// 【戻り値】
// 重複しないファイル名
//////////////////////////////////////////////////
FUNCTION uniqueFilename(path)
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
IFB FSO.FileExists(path) THEN
DIM fol = FSO.GetParentFolderName(path)
DIM filename = FSO.GetBaseName(path)
DIM extension = FSO.GetExtensionName(path)
DIM i = 2
WHILE FSO.FileExists(FSO.BuildPath(fol, filename + " (" + i + ")." + extension))
i = i + 1
WEND
RESULT = FSO.BuildPath(fol, filename + " (" + i + ")." + extension)
ELSE
RESULT = path
ENDIF
FEND
使用関数
解説
すべての電子メールアカウントを取得(Outlook)
Outlookに登録されているすべての電子メールアカウントの表示名を取得します。
DIM Outlook = CREATEOLEOBJ("Outlook.Application")
DIM Application = Outlook.Application
DIM NameSpace = Application.Session
DIM Accounts = NameSpace.Accounts
FOR Account IN Accounts
PRINT Account.DisplayName
NEXT
結果
*****@yahoo.co.jp
*****@ezweb.ne.jp
*****@gmail.com
使用関数
指定期間のメールを日毎に集計(Outlook)
CONST olFolderIndex = 6
DIM Outlook = CREATEOLEOBJ("Outlook.Application")
DIM NameSpace = Outlook.GetNameSpace("MAPI")
DIM Folder = NameSpace.GetDefaultFolder(olFolderIndex)
DIM Items = Folder.Items
Items = Items.Restrict("[ReceivedTime] >= '2020/12/01' AND [ReceivedTime] < '2020/12/31'")
HASHTBL dates = HASH_SORT
FOR MailItem IN Items
DIM datetime = MailItem.ReceivedTime
GETTIME(0, datetime)
DIM date = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
dates[date] = dates[date] + 1
NEXT
FOR i = 0 TO LENGTH(dates) - 1
PRINT dates[i, HASH_KEY] + "<#TAB>" + dates[i, HASH_VAL]
NEXT
結果
2020/12/05 78
2020/12/06 60
2020/12/07 72
2020/12/08 82
2020/12/09 75
2020/12/10 91
2020/12/11 82
2020/12/12 77
2020/12/13 63
2020/12/14 71
2020/12/15 104
2020/12/16 84
2020/12/17 80
2020/12/18 93
2020/12/19 78
2020/12/20 66
2020/12/21 67
2020/12/22 75
2020/12/23 82
2020/12/24 73
2020/12/25 87
2020/12/26 73
2020/12/27 56
2020/12/28 65
2020/12/29 69
2020/12/30 44
2020/12/31 1
使用関数
参考文献
関連記事
- Account オブジェクト
- Accountオブジェクトは、現在のプロファイルに定義されているアカウントを表します。
- Accounts オブジェクト
- 現在のプロファイルで利用できるアカウントを表すAccountオブジェクトのセットが含まれています。
- Application オブジェクト
- Outlookアプリケーション全体を表します。
- AppointmentItem オブジェクト
- 新しい予定を表すAppointmentItemオブジェクトを作成します。
- Folder オブジェクト
- Folders オブジェクト
- Items オブジェクト
- MailItem オブジェクト
- メールメッセージを表します。
- Recipient オブジェクト
- TaskItem オブジェクト