OutlookのVBAで、以下のようなコードを作って、メールの宛先チェックを実装しようと思います。

「メール」の送信では、うまく制御できたのですが、「会議出席依頼」の送信ではエラーになりました。
メソッドまたはプロパティがありません。というエラーです。
おそらくOutlookの「会議出席依頼」の場合、Toというプロパティが存在しないということだと思いますが、
エラーを発生させないようにしたいです。どのようにすれば良いでしょうか?
参考となるVBAびコードを示していただけると助かります。何卒よろしくお願いします。

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

Dim strTo As String

strTo = Item.To '宛先 エラーの発生箇所

' 件名チェック、以下省略

End Sub

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2011/02/01 00:05:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:beatgoeson No.1

回答回数128ベストアンサー獲得回数14

ポイント60pt

Item.Classでメールアイテムかどうかを判定するのが良いかと。


If Item.Class = olMail Then

'送信するオブジェクトがメールの場合

else

'送信するオブジェクトがメール以外(例:会議室依頼)の場合

End If


Item.Classの種類は以下を参考に。通常のメールはolMail(43)、会議室依頼はolMeetingRequest(53)となります。

http://msdn.microsoft.com/en-us/library/bb208118(v=office.12).aspx


olMail 43 Represents a MailItem object.

olMeetingRequest 53 Represents a MeetingItem object that is a meeting request.

id:konakonan

ありがとうございます!

勉強になりました。

2011/01/25 22:53:17
  • id:windofjuly
    うぃんど 2011/01/25 11:52:23
    回答権利が無いのでヒントだけ
     
    下記にメソッドとプロパティの一覧があるので参照しつつ、作業すると良いでしょう
    http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.outlook._appointmentitem_members.aspx
  • id:ken3memo
    Dim strTYPE As String
    strTYPE = TypeName(Item)

    If strTYPE = "MailItem" Then
    'メールの処理
    strTo = Item.To '宛先 エラーの発生箇所
    ' 件名チェック、以下省略


    End If

    If strTYPE = "MeetingItem" Then
    'ミーティング 会議出席依頼
    'MeetingItem の 中身を探って、メンバーのチェック方法を探るとか?
    End If

  • id:ken3memo
    ミーティングじゃなくって
    windofjuly さんの 書かれている
    >AppointmentItem インターフェイス
    >http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.outlook.appointmentitem.aspx
    >Office 2007 予定表フォルダの会議、1 回限りの予定、または定期的な予定や会議を表します。
    となっているので、私のミーティングは勘違かも。
    Debug.print TypeName(Item)
    などで、送信時のオブジェクトを探ってみてください。
    混乱させてスミマセンでした。
  • id:taknt
    >エラーを発生させないようにしたいです

    エラーのときは、エラー処理をさせるのが一般的かと。

    http://excelvba.pc-users.net/fol6/6_8.html
  • id:konakonan
    皆様

    コメントありがとうございます!
    回答権利がない方がいらっしゃったようで、申し訳ありません。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません