NameSpace.GetDefaultFolder メソッド

本ページには広告が含まれています。

現在のプロファイルで要求された種類の既定のフォルダーを表すFolder オブジェクトを返します。

構文
  1. Folder = NameSpace.GetDefaultFolder( FolderType )
引数
FolderType 省略可
OlDefaultFolders
戻り値
Folder オブジェクト

NameSpace オブジェクトを返すメソッド・プロパティ

Application.GetNamespace メソッド
指定した種類のNameSpace オブジェクトを返します。

定数一覧

OlDefaultFolders 列挙

名前説明
olFolderDeletedItems3削除済みアイテムフォルダ
olFolderOutbox4送信トレイフォルダ
olFolderSentMail5送信済みアイテムフォルダ
olFolderInbox6受信トレイフォルダ
olFolderCalendar9予定表フォルダ
olFolderContacts10連絡先フォルダ
olFolderJournal11履歴フォルダ
olFolderNotes12メモフォルダ
olFolderTasks13仕事フォルダ
olFolderDrafts16下書きフォルダ
olPublicFoldersAllPublicFolders18Exchangeパブリックフォルダストア内のAll Public Foldersフォルダ。Exchangeアカウントの場合のみ。
olFolderConflicts19競合フォルダ
olFolderSyncIssues20同期の失敗フォルダ。Exchangeアカウントの場合のみ。
olFolderLocalFailures21ローカルの失敗フォルダ。Exchangeアカウントの場合のみ。
olFolderServerFailures22サーバーの失敗フォルダ。Exchangeアカウントの場合のみ。
olFolderJunk23迷惑メールフォルダ
olFolderRssFeeds25RSSフィードフォルダ
olFolderToDo28To Doフォルダ
olFolderManagedEmail29管理対象のフォルダグループの最上位フォルダ。
olFolderSuggestedContacts30
UWSC
CONST olFolderDeletedItems = 3
CONST olFolderOutbox = 4
CONST olFolderSentMail = 5
CONST olFolderInbox = 6
CONST olFolderCalendar = 9
CONST olFolderContacts = 10
CONST olFolderJournal = 11
CONST olFolderNotes = 12
CONST olFolderTasks = 13
CONST olFolderDrafts = 16
CONST olPublicFoldersAllPublicFolders = 18
CONST olFolderConflicts = 19
CONST olFolderSyncIssues = 20
CONST olFolderLocalFailures = 21
CONST olFolderServerFailures = 22
CONST olFolderJunk = 23
CONST olFolderRssFeeds = 25
CONST olFolderToDo = 28
CONST olFolderManagedEmail = 29
CONST olFolderSuggestedContacts = 30

プログラム実行例

受信トレイに新しいフォルダを作成(Outlook)

UWSC
CONST olFolderInbox = 6

DIM Outlook = CREATEOLEOBJ("Outlook.Application")
DIM NameSpace = Outlook.GetNameSpace("MAPI")
DIM Folder = NameSpace.GetDefaultFolder(olFolderInbox)

TRY
	Folder.Folders.Add("NewFolder")
EXCEPT
	MSGBOX("フォルダを作成できませんでした。")
ENDTRY

指定期間に受信したメールを取得(Outlook)

UWSC
CONST olFolderInbox = 6

DIM Outlook = CREATEOLEOBJ("Outlook.Application")
DIM NameSpace = Outlook.GetNameSpace("MAPI")
DIM Folder = NameSpace.GetDefaultFolder(olFolderInbox)
DIM Items = Folder.Items

DIM start = "2022/01/01"
DIM end = "2022/01/31"

Items = Items.Restrict("[ReceivedTime] >= '" + start + "' AND [ReceivedTime] < '" + end + "'")

FOR MailItem IN Items
	WITH MailItem
		PRINT "受信日時:<#TAB>" + .ReceivedTime
		PRINT "件名:<#TAB><#TAB>" + .Subject
		PRINT "----------"
	ENDWITH
NEXT
使用関数

指定期間のメール情報を取得(Outlook)

UWSC
CONST olFolderInbox = 6
CONST xlTop = -4160
CONST xlLeft = -4131

DIM Excel = ExcelBoot()

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/02"

Items = Items.Restrict("[ReceivedTime] >= '" + start + "' AND [ReceivedTime] < '" + end + "'")

DIM array[][1] = "受信日時", "ReceivedTime", + _
					"送信者メールアドレス", "SenderEmailAddress", + _
					"送信者", "SenderName", + _
					"CC", "CC", + _
					"BCC", "BCC", + _
					"件名", "Subject", + _
					"本文", "Body", + _
					"HTML本文", "HTMLBody"

Excel.Application.ScreenUpdating = FALSE

FOR i = 0 TO UBound(array)
	Excel.Cells(1, i + 1).Value = array[i][0]
NEXT

DIM row = 2

FOR MailItem IN Items
	FUKIDASI(row + "/" + Items.Count)
	WITH MailItem
		FOR i = 0 TO UBound(array)
			Excel.Cells(row, i + 1).Value = EVAL("." + array[i][1])
		NEXT
	ENDWITH
	row = row + 1
NEXT

WITH Excel.Range("A1").CurrentRegion
	.ColumnWidth = 20
	.RowHeight = 30
	.VerticalAlignment = xlTop
	.HorizontalAlignment = xlLeft
ENDWITH

Excel.Application.ScreenUpdating = TRUE

//////////////////////////////////////////////////
// 【引数】
//   path : 開くファイルのパス名 
// 【戻り値】
//   <a href="https://uwsc.jp/com/excel/" >Excel オブジェクト</a> 
//////////////////////////////////////////////////
FUNCTION ExcelBoot(path = "")
	DIM Excel = CREATEOLEOBJ("Excel.Application")
	Excel.Visible = TRUE
	IFB path = "" THEN
		Excel.Workbooks.Add
	ELSE
		DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
		IFB FSO.GetParentFolderName(path) = "" THEN
			path = GET_CUR_DIR + "\" + path
		ENDIF
		Excel.Workbooks.Open(path)
	ENDIF
	RESULT = Excel
FEND

//////////////////////////////////////////////////
// 【引数】
//   inputs : 繰り返す文字列 
//   multiplier : inputsを繰り返す回数 
// 【戻り値】
//   inputsをmultiplier回を繰り返した文字列を返します 
//////////////////////////////////////////////////
FUNCTION strRepeat(inputs, multiplier)
	DIM res = ""
	FOR n = 1 TO multiplier
		res = res + inputs
	NEXT
	RESULT = res
FEND

//////////////////////////////////////////////////
// 【引数】
//   arrayname : 上限値を求める配列の名前 
//   dimension : 返す次元を示す整数 
// 【戻り値】
//   配列の上限値 
//////////////////////////////////////////////////
FUNCTION UBound(arrayname[], dimension = 1)
	RESULT = EVAL("RESIZE(arrayname" + strRepeat("[0]", dimension - 1) + ")")
FEND
使用関数

指定期間に受信したメールからURLを抽出(Outlook)

UWSC
HASHTBL url = HASH_SORT

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/07"

Items = Items.Restrict("[ReceivedTime] >= '" + start + "' AND [ReceivedTime] <= '" + end + "'")

DIM row = 1

FOR MailItem IN Items
	FUKIDASI(row + "/" + Items.Count)
	DIM Matches = reExecute(MailItem.Body, "https?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?")
	FOR Match IN Matches
		url[Match.Value] = url[Match.Value] + 1
	NEXT
	row = row + 1
NEXT

FOR i = 0 TO LENGTH(url) - 1
	FUKIDASI(i + "/" + (LENGTH(url) - 1))
	PRINT url[i, HASH_KEY]
NEXT

//////////////////////////////////////////////////
// 【引数】
//   str : 正規表現による検索の対象となる文字列 
//   Pattern : 正規表現で使用するパターンを設定 
//   IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse 
//   Global : 文字列全体を検索する場合はTrue、しない場合はFalse 
// 【戻り値】
//   正規表現で検索した結果をMatchesコレクションとして返します。 
//////////////////////////////////////////////////
FUNCTION reExecute(str, Pattern, IgnoreCase = TRUE, Global = TRUE)
	DIM re = CREATEOLEOBJ("VBScript.RegExp")
	re.Pattern = Pattern
	re.IgnoreCase = IgnoreCase
	re.Global = Global
	RESULT = re.Execute(str)
FEND
使用関数
解説

指定期間に受信したメールの添付ファイルをすべて保存(Outlook)

UWSC
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)

UWSC
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
使用関数

既定フォルダの最新のメールを取得

既定フォルダで受信した最新のメールを取得し、差出人名件名受信日時を出力します。

UWSC
CONST olFolderInbox = 6

DIM Outlook = CREATEOLEOBJ("Outlook.Application")
DIM NameSpace = Outlook.GetNameSpace("MAPI")
DIM Folder = NameSpace.GetDefaultFolder(olFolderInbox)

DIM Items = Folder.Items
Items.Sort("[ReceivedTime]", FALSE)
DIM MailItem = Items.GetLast

WITH MailItem
	PRINT "差出人名," + .SenderName
	PRINT "件名," + .Subject
	PRINT "受信日時," + .ReceivedTime
ENDWITH
使用関数
解説

参考文献

  1. NameSpace.GetDefaultFolder メソッド

関連記事

Account オブジェクト
Accountオブジェクトは、現在のプロファイルに定義されているアカウントを表します。
Accounts オブジェクト
現在のプロファイルで利用できるアカウントを表すAccountオブジェクトのセットが含まれています。
Application オブジェクト
Outlookアプリケーション全体を表します。
AppointmentItem オブジェクト
新しい予定を表すAppointmentItemオブジェクトを作成します。
Folder オブジェクト
Folders オブジェクト
Items オブジェクト
MailItem オブジェクト
メールメッセージを表します。
NameSpace オブジェクト
Outlookのメールや予定表、連絡先といった様々なデータにアクセスすることができます。
Recipient オブジェクト