Outlookサポートナビ!  ≫≫≫ Outlookフォーム作成/VBSプログラミング

 

◆ アイテムの作成日時を取得する

 

オブジェクト

プロパティ(作成日時を取得)

Item

CreationTime

記述例: UserProperties("作成日時") = Item.CreationTime

 

新規アイテムの作成日時は「4501/01/01」になります。これを利用して新規アイテムと既存アイテムの処理を分けることができます。

(参考:新規アイテムのみ処理を実行する

 

★注意

作成日時は新アイテムを開いた日時最初の保存時に アイテムに格納します。ですから”保存”操作前にフィールドに格納すると値=「なし(4501/01/01)」となってしまいます。(本来の作成日時は保存時にアイテムに格納されますが保存前にフィールドに値を格納してしまう為)

ですから作成日時をフィールドに格納したい場合は、以下のいづれかの方法で取得します。

  • ユーザーが保存操作を行ったら直前に上書き保存されるよう記述します。(最初の保存時に作成日時をフィールドに格納する為。)

  • 既存アイテムを開いた時」に作成日時がフィールドに格納されるように記述します。

  • Item.CreationTimeプロパティを使わず、Date関数やTime関数、Now関数などで現在の日時をフィールドに格納します。

 

▼ 関数を使う場合

関数

意味

Date

現在の日付を取得

Time 現在の時刻を取得
Now 現在の日時(日付&時刻)を取得

記述例: UserProperties("アイテム作成日時").value = Date()

→「アイテム作成日時」フィールドに現在の日付を格納します。

 

記述例:


記号

保存時に作成日時を取得する
(ユーザーによる保存時、1度上書き保存されるよう記述します)

Sub item_Write()

Item.save
UserProperties("申込日").value = Item.CreationTime
End sub

★アイテムを保存する際に発生するイベント

★アイテムを上書き保存する(=作成日時取得)

★申込日フィールドに作成日時を格納


記号

既存アイテムオープン時に作成日時を取得する
(既存アイテムを開いた際に作成日時がフィールドに格納されるよう記述します)

Sub Item_Read()

UserProperties("申込日").value = Item.CreationTime

End Sub

★既存アイテムを開いた際に発生するイベント

★申込日 フィールドに作成日時を格納

 

 

※ 既存アイテムの場合のみ処理を実行する場合は、Item_Readイベントを使います。


記号

関数を使って作成日時を取得する
(新規アイテムを開いた際、現在の日付をDate関数やNow関数を使って作成日時フィールドに格納します)

Sub Item_Open()

If Item.creationtime = #4501/01/01# then
UserProperties("申込日").value = date()
End if
End Sub

★アイテムを開いた際に発生するイベント

★もしアイテムが新規なら

★申込日 フィールドに現在の日付を格納

 

 

※ 日時を記述する場合は#で囲みます。


記号

新規アイテムを開いた際、現在のユーザーを「作成者」として格納する

Sub item_open()
Set MyNameSpace = Application.GetNameSpace("mapi")
If Item.CreationTime = #4501/01/01# then

UserProperties("作成者").value = MyNameSpace.CurrentUser
Else
End if
End sub

★アイテムを開いた際に発生するイベント

★Outlookルートオブジェクトを取得

★作成日時が4501/01/01(=新規アイテム)なら

★作成者プロパティに現在のユーザーを格納

 

(OutlookログオンユーザーはNameSpaceオブジェクトのCurrentUserプロパティで取得 できます。)

※ Outlookには予め「作成日時」フィールドが用意されています。フォームに配置する場合は「フィールドの選択」ダイアログから「すべてのドキュメントフィールド」を選択し「作成日時」フィールドをドラッグ することもできます。