1

共有メールボックスの受信トレイにあるメールに自動的に返信する VBA スクリプトを作成しようとしています。現時点ではただのテストですが、後で新しい受信メールに返信したいと考えています。ただし、これまでのところ、コードを実行しようとすると、「Microsoft Outlook が動作を停止しました」というエラーで Outlook がクラッシュし、Outlook を再起動する必要があります。

fyi: ドイツ語の Outlook バージョン 2007 を使用しています。

Sub ReplyMail()

Dim myOutApp As Object
Dim myNameSpace As Object
Dim myMailFolder As Object
Dim myRecipient As Outlook.Recipient

boxName = "sharedmailbox@host.de"      'configure mailbox address here

'Get Mailbox folder
Set myOutApp = CreateObject("Outlook.application")
Set myNameSpace = myOutApp.GetNamespace("MAPI")
Set myRecipient = myNameSpace.CreateRecipient(boxName)
    myRecipient.Resolve         'convert mail address into mailbox name
Set myMailFolder = myNameSpace.GetSharedDefaultFolder(myRecipient, olFolderInbox)

Dim Item As Object
Set Item = myMailFolder.Items(1)

Dim oMail As Outlook.MailItem
Set oMail = Item.Reply
With oMail
    .BodyFormat = olFormatHTML
    .HTMLBody = "<HTML>This is a test mail.</HTML>"     
    .Send
End With

End Sub

「.send」の代わりに「.display」を使用すると、メールが正しくポップアップ表示され、手動でメールを送信できます。

このエラーの解決方法が本当にわかりません。助けてください!

ありがとうございました!

マイケル

4

2 に答える 2

0

非常に奇妙な!例外的なバグでない限り、私にはわかりません。ちょっとした注意: オブジェクトを Outlook オブジェクトとして宣言します。

Dim myOutapp as outlook.application 
Dim myNameSpace as outlook.namespace
Dim myMailFolder as Mapifolder

これは一般的なパフォーマンス (Object が一般的なタイプ) のためですが、ほとんどの場合、問題は解決しません。

もし私があなたの立場なら、メモリから Outlook を完全に終了し、Outlook/Office を修復または再インストールします。あなたのコードに何かひどく問題があるとは思いません。.display が機能するので、とても驚きました。

于 2012-07-05T17:01:52.073 に答える
0

C:\Users\ へのアクセス権に問題がある可能性があります

特定の時点から特定の電子メールを開くと、同様の問題が発生しました。どういうわけか、そのフォルダーへのアクセス権が構成解除されていました。だから私はこの手順に従ったが、すべてが再びうまくいった: http://www.addictivetips.com/windows-tips/windows-7-access-denied-permission-ownership/

于 2016-02-08T13:16:29.983 に答える