1
「今日」のマークが付いている場合は、このマクロを使用して電子メールから「ログ」カレンダーにイベントを作成します。私の問題は、マクロが同じイベントを3回作成していることです。ItemChangeイベントを使用しているときにコードが不必要に実行される
Public WithEvents OlItems As Outlook.Items
Public Sub Initialize_handler()
Set OlItems = Application.GetNamespace("MAPI"). _
GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub OlItems_ItemChange(ByVal Item As Object)
Dim Ns As Outlook.NameSpace
Dim objApp As Outlook.Application
Dim olAppt As Outlook.AppointmentItem
If Item.IsMarkedAsTask = oIMarkToday Then
Set Ns = Application.GetNamespace("MAPI")
Set objApp = Application
' Subfolder named 'Log' under calendar
Set calFolder = Ns.GetDefaultFolder(olFolderCalendar).Folders("Log")
Set olAppt = calFolder.Items.Add(olAppointmentItem)
With olAppt
.Subject = Item.Subject
'.Attachments.Add Item
.Body = Item.Body
.Start = Now + 2
.End = Now + 2.08
.ReminderSet = False
.BusyStatus = olFree
.Save
'.Display 'show to add notes
End With
Set objApp = Nothing
Set Ns = Nothing
End If
End Sub
あなたの答えをありがとう、私は実行中に同様のことが起こっていると思った。私はVBAの専門家ではありません。私は単純にインターネット上で利用可能なマクロにマージしてこの仕事をしています...私のコードでこの4つのカスタムプロパティをどのように見えるか教えてください。 –
上記の更新された回答をご覧ください。 –
こんにちは、更新のおかげで、それは問題を解決しました(それは1つだけのイベントを作成します)しかし、私はメールにフラグを立て、完了としてマークし、フラグをクリアする場合、何らかの理由で(ただし必ずしもそうではありません)私が今日のように電子メールをマークするだけであれば、何も起こりません。 –