現象

Outlook 2013 で outlook オブジェクトモデル を使用して、IMAP アカウントのメールメッセージに UserProperty オブジェクトを追加すると、次のエラーメッセージが表示されます。

実行時エラー '-2147221239 (80040109) ': メッセージが変更されたため、操作を実行できません。

注意事項

  • この問題は、コードをすばやく連続して実行し、 UserProperty オブジェクトを同じメールメッセージに2回目に追加する場合にのみ発生します。

  • この問題は、プレビューウィンドウが無効になっている場合、またはコードを2回実行する前に電子メールメッセージを切り替える場合には発生しません。

回避策

この問題を回避するには、コードを実行した後にすべてのアイテムを閉じて、 UserPropertyオブジェクトをメールメッセージに追加します。 または、同じメールメッセージのコードを1回だけ実行してください。

この問題は、IMAP アカウントでメールメッセージを複数回編集して保存することは非効率的であるために発生します。 メールメッセージが保存されている場合は、完全に新しいメールメッセージとしてサーバーにアップロードする必要があります。元のメールメッセージは削除されます。 [プレビュー] ウィンドウが有効になっている場合、元のメールメッセージはメモリ内に残りますが、複数のアップロードが原因で、基になるメールメッセージが変更されます。 この問題を再現するには、次の手順を実行します。

  1. メッセージ一覧でメールメッセージを選択します。

  2. [プレビュー] ウィンドウが有効になっていることを確認します。

  3. 同じメールメッセージの場合は、次のコードを立て続けに2回実行します。

    Function ReproCode()Dim oExp As Outlook.ExplorerDim oSel As Outlook.SelectionDim oMail As Outlook.MailItemDim oProp As UserPropertyDim oProps As UserProperties   Set oExp = Application.ActiveExplorerSet oSel = oExp.Selection   For iCount = 1 To oSel.CountIf oSel.Item(iCount).Class = OlObjectClass.olMail ThenSet oMail = oSel.Item(iCount)Set oProps = oMail.UserPropertiesSet oProp = oProps.Add("TextProp", olText, False, 1)oProp.Value = "Sample Text"oMail.SaveEnd IfNext iCountSet oExp = NothingSet oSel = NothingSet oMail = NothingSet oProp = NothingSet oProps = Nothing   End Function

注:Microsoft には、例示または暗示的な保証のない、イラスト用のプログラミング例が用意されています。これには、商品性または特定の目的に対する適合性の黙示的な保証が含まれますが、これに限定されるわけではありません。この記事では、例示されているプログラミング言語と、プロシージャの作成とデバッグに使用するツールについて理解していることを前提としています。Microsoft サポートエンジニアは、特定の手順の機能を説明するのに役立ちます。ただし、これらの例を変更しても、特定の要件に合わせて追加された機能を提供したり、プロシージャを作成したりすることはできません。

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

翻訳品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

フィードバックをお送りいただきありがとうございます!

×