出席者から辞退の返信が来た際にキャンセル通知を送信して会議を削除するマクロ


コメントにて以下のご要望をいただきました。


Outlook2010をExchange環境で使用しています。
会議室予約を指定した秒数毎に行うマクロを作ったのですが、先着順のために予約が2番手以降になった場合には全て辞退でシステムからメールが返ってきます。
2秒間隔で3件の予約を行うようにしています。

その際に全て辞退として返ってきたメールを毎回削除していく必要があります。

全て辞退で返ってきたメールだけを「キャンセル通知を送信して削除する」にはどうすれば良いでしょうか?
通知を送信せずに削除するを選択しても自分の予約には全く効果が無いためこのような作業を自動化したいと思っています。

この作業については自動化が可能でしょうか?
可能であればどのようなコードになるのかご教示願いたいので、よろしくお願いします。


Outlook オブジェクト モデルで会議出席依頼の辞退の返信を受け取った際にキャンセル通知を送信して削除するには、以下のような手順を踏む必要があります。

  1. 会議出席依頼の辞退返信から元の会議アイテムを取得します。
  2. 会議アイテムの MeetingStatus を olMeetingCanceled にします。
  3. 会議アイテムの Send メソッドでキャンセル通知を送信します。
  4. 会議アイテムを削除します。

サンプルは以下のようになります。

' ここをトリプルクリックでマクロ全体を選択できます。

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim objItem
    Set objItem = Session.GetItemFromID(EntryIDCollection)
    If objItem.MessageClass = "IPM.Schedule.Meeting.Resp.Neg" Then
        Dim meetItem As MeetingItem
        Dim apptItem As AppointmentItem
        Set meetItem = objItem
        Set apptItem = meetItem.GetAssociatedAppointment(False)
        apptItem.MeetingStatus = olMeetingCanceled
        apptItem.Send
        apptItem.Delete
    End If
End Sub

マクロの登録方法やメニューへの追加について

広告

出席者から辞退の返信が来た際にキャンセル通知を送信して会議を削除するマクロ」への1件のフィードバック

  1. お世話になります。
    質問者の方とほぼ同じ用途で会議室予約のマクロを作成しており、辞退になったアイテムの自動キャンセル送信に、上記マクロを使用させていただいております。

    しかし、以下の条件で実行時エラーが発生します。

    ■条件1
     一つの予約アイテムに複数の会議室を指定した同一条件のアイテムを多数同時送信した場合
     ※必ず再現する
    【エラー発生個所】
     apptItem.MeetingStatus = olMeetingCanceled
     このとき、「apptItem」の値は「Nothing」になっています。
    【エラー内容】
     実行時エラー ’91’
     オブジェクト変数またはWithブロック変数が設定されていません。

    ■条件2
     一つの予約アイテムに一つの会議室を指定した同一条件のアイテムを多数同時送信した場合
     ※再現性は低い
    【エラー発生個所】
     Set objItem = Session.GetItemFromID(EntryIDCollection)
    【エラー内容】
     実行時エラー ‘-2147352567(80020009)’:
     アイテムを開けませんでした。もう一度試してみてください。

    エラー番号など調べてみましたが、解決には至っておりません。
    初心者で申し訳ありませんが、よろしくお願いいたします。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中