昔の記事 Outlook VBA でフラグを付ける処理
三流君VBA:Outlook VBAでフラグ作成 .FlagStatus .FlagRequest .FlagDueBy
http://www.ken3.org/vba/backno/vba161.html
に下記の質問をいただきました。
教えていただければと思います。
No161のフラッグ設定を既存のマクロに付け足そうとしています。(BCCで自分へのメールを付け足すマクロです)
下記がうまく働きません。
どうすればよいでしょうか?
ー------------------------
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim oApp As Object 'アプリケーションオブジェクト Dim objMAIL As Object 'メールのオブジェクト Dim strSenderAddress As String 'アプリケーションオブジェクトの作成 Set oApp = CreateObject("Outlook.Application") Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 strSenderAddress = Item.SendUsingAccount.CurrentUser.Address 'VBA161でFLG関係のテスト objMAIL.FlagStatus = olFlagMarked 'olFlagMarked (2)をセット参照設定時は定数で objMAIL.FlagRequest = "連絡ください" 'フラグ内容をセット objMAIL.FlagDueBy = DateAdd("d", 1, Now) '期限は1日後をセット '↑ここまです(VBA161で追加)
こんにちは。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
の
ITEMが送信時のITEMなので
Dim objMAIL As Object 'メールのオブジェクト Set objMAIL = oApp.CreateItem(0) 'olMailItem=0
だと、メールを新規に作ってしまうのでは?
そのメールに
'VBA161でFLG関係のテスト objMAIL.FlagStatus = olFlagMarked 'olFlagMarked (2)をセット参照設定時は定数で objMAIL.FlagRequest = "連絡ください" 'フラグ内容をセット objMAIL.FlagDueBy = DateAdd("d", 1, Now) '期限は1日後をセット '↑ここまです(VBA161で追加)
としても、
意味がないような・・・
素直に
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
の
ByVal Item As Object
を使うと思うのですが・・・
下記、修正案
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim strSenderAddress As String strSenderAddress = Item.SendUsingAccount.CurrentUser.Address 'VBA161でFLG関係のテスト Item.FlagStatus = olFlagMarked 'olFlagMarked (2)をセット参照設定時は定数で Item.FlagRequest = "連絡ください" 'フラグ内容をセット Item.FlagDueBy = DateAdd("d", 1, Now) '期限は1日後をセット '↑ここまです(VBA161で追加)
objMAIL ではなくて Item で動くといいんだけど
間違っていたらスミマセン、
送信時に
Dim objMAIL As Object 'メールのオブジェクト
Set objMAIL = oApp.CreateItem(0) 'olMailItem=0
で作り直しているのが
気になったので
解決のヒントとなれば幸いです。 三流プログラマー Ken3