プロが教えるわが家の防犯対策術!

お世話になっております。
OutlookのVBAについてです。

メール送信後、送信済フォルダに送信済メールが追加された時に、VBAを実行しようとしておりますが、
VBAコードが実行できたり、出来なかったりします。
すべてのカテゴリのマクロを有効にしております。
Outlookを終了し、再度起動すると、実行されることがあります。

お手数ですみませんが、対処法のご教授をお願いできますでしょうか。

VBEで、Project1(VBAProject.OTM)の、Microsoft Outlook Objectsの、ThisOutlookSessionに、以下のようなコードを作成しました。


Option Explict

Dim WithEvents mySentItems As Items

Private Sub Application_ItemLoad(ByVal Item As Object)

End Sub

Private Sub Application_Startup()
Set mySentItems = Session.GetDefaultFolder(oldFolderSentMail).Items
End Sub

Private Sub mySentItems_ItemAdd(ByVal Item As Object)

' 実行したいコード

End Sub


条件は以下です。
Windows10 Pro 21H2(OSビルド 19044.2486)
Outlook:サブスクリプション製品 Microsoft 365 Apps for enterprise

何卒宜しくお願い致します。

A 回答 (2件)

こんにちは



outlookはよくわかりませんけれど・・

>メール送信後、送信済フォルダに送信済メールが追加された時に
タイミング的に送信時のイベントではダメなのでしょうか。
https://learn.microsoft.com/ja-jp/office/vba/api …

また、ご提示のコードでは
>GetDefaultFolder(oldFolderSentMail).Items
とありますが、Enum値を用いるのなら olFolderSentMail ではないかと推測しますけれど・・
もしかすると、未定義で0と解釈されていませんか?
0の場合に、エラーになるのかどうかは知りませんけれど・・
https://learn.microsoft.com/ja-jp/office/vba/api …

ご参考にでもなれば・・
当方の勘違いならスルーしてください。
    • good
    • 3
この回答へのお礼

ご教授、誠にありがとうございます。

お礼日時:2023/02/02 16:25

この問題は一般的にはOutlookのキャッシュの問題によるものです。

Outlookのキャッシュをクリアすることで解決する可能性があります。Outlookのキャッシュをクリアする方法は次のとおりです。

Outlookを終了する
Windows Startメニューで"File Explorer"を開く
ユーザーアカウントのApp DataのRoamingフォルダに移動する
Microsoftフォルダを開く
Officeフォルダを開く
Outlookフォルダを開く
下のファイルを削除する: Outlook.srs, Outcmd.dat
Outlookを再起動する
この方法で解決しない場合は、Outlookの設定を変更してVBAマクロのセキュリティレベルを下げることもできます。Outlookを開いて、[ファイル]タブから[オプション]をクリックし、[セキュリティセンター]を開きます。[マクロのセキュリティ]を選択して、"低"に設定します。

これらの方法が無効の場合は、Outlookの修復や再インストールを試すこともできます。
    • good
    • 3
この回答へのお礼

大変お早く、また分かりやすくご回答下さり、深くお礼申し上げます。

お礼日時:2023/02/02 16:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!