- 締切済み
outlookでマクロエラー
メールを複数人に送信する場合、受信者に知られないように「B.C.C.」で送らなければならないのですが、 ついうっかり「To」や「C.C.」にアドレスを入れてしまい、相手からクレームをもらうということがありました。 それを未然に防ぐため、「To」や「C.C.」にアドレスに150文字以上入れたらアラートを出す、というマクロを以下のように作り、Visual Basic Editorに組み込みました。 Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim strSubject As String strTo = Item.To strCC = Item.CC If Len(strTo) >= 150 Or Len(strCC) >= 150 Then Prompt$ = "ToかCCが150文字を超えています。本当に送信しますか?" If MsgBox(Prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "注意!") = vbNo Then Cancel = True End If End If End Sub このマクロは正常に動作するんですが、 問題は会議出席依頼を送信か承諾するときに 実行時エラー'438': オブジェクトは、このプロパティまたはメソッドをサポートしていません。 というエラーが出るようになりました。 「終了」「デバッグ」「へルプ」が選択でき、 そこで「終了」を押すと普通に会議依頼は完了するのでし仕事上の問題はありません。 そこで「デバッグ」をすると strTo = Item.To のところが黄色くハイライトされます。 マクロも正常に動き、会議依頼もできるのですが、 毎回このエラーがでるので、なんとか直したいと思っています。 何か解決する方法ありますでしょうか。 環境はwindows XP、outlook2007です。 ご教授よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 10CubeLeaf
- ベストアンサー率80% (248/308)
会議出席依頼のオブジェクト (MeetingItem) には To や Cc はありません。 単に会議出席依頼でのチェックを無視するだけでよいなら、以下のようなコードにすればよいでしょう。 Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim strSubject As String If Item.MessageClass Like "IPM.Meeting.*" Then Exit Sub End If strTo = Item.To strCC = Item.CC If Len(strTo) >= 150 Or Len(strCC) >= 150 Then Prompt$ = "ToかCCが150文字を超えています。本当に送信しますか?" If MsgBox(Prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "注意!") = vbNo Then Cancel = True End If End If End Sub
補足
すばやい回答ありがとうございます。 コピペして使ってみましたが、同じエラーが出て、 strTo = Item.To のところがハイライトされます。 なにか根本的な設定がまちがっているのでしょうか。 引き続きよろしくお願いします。