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

 

◆ 新規アイテムのみ処理を実行する

 

オブジェクト

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

Item

CreationTime

記述法: Item.CreationTime

 

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

参考: アイテムの作成日時を取得する

 

記述例:


記号

新規作成時のみ、実行ユーザー名を取得
(アイテムを開いた際、新規なら現在のOutlookログオンユーザー名を取得します。)

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プロパティで取得できます。)

 

 

※補足

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

・既存アイテムの場合のみ処理を実行する場合は、Item_Readイベントを使うこともできます。

・関連:既存アイテムのみ処理を実行する


記号

応用:変更者が「作成者」ではない場合は保存を禁止する

Sub Item_Open()

Set MyNameSpace = Application.GetNameSpace("mapi)

If Item.CreationTime = #4501/01/01# then

UserProperties("作成者").value = MyNameSpace.CurrentUser

End if

End Sub

------------------------------------------------------------------

Function Item_Write()
Set MyNameSpace = Application.GetNameSpace("mapi")
if UserProperties("作成者").value <> MyNameSpace.CurrentUser then
Msgbox "作成者以外は変更できません。"
Item_Write = False
End if
End function

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

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

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

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

 

 

-----------------------------------

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

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

★作成者と現在のユーザーが異なるなら

★エラーメッセージを表示

★保存を中止