2016-06-22 6 views
0

Outlookが新しく開いたOutlook MailItemに署名を添付しないようにしたい。 Outlook.CreateItemFromTemplate(TemplateName)を使用すると、デフォルトの署名が自動的に新しいMailItemに追加されます。 Outlook Clientに添付された複数のアカウントで作業する場合、その署名はしばしば望ましくないか、単純に間違ったものになります。事態を悪化させるために、多くのOutlookメソッドは、不要な署名の複製コピーをさらに追加します。それらの全体のスルーを添付して巻くことが可能です。OutlookでVBAで繰り返し不要な署名を追加する

テンプレートを開くと、TemplateNameがのときにアクティブだったアカウントのデフォルトが追加されます。。現在有効なアカウントのデフォルトはではなく、です。 1つのアイデアは、一時的に関連するアカウントの署名を無効にし、必要な署名を直接追加することです。 特定のアカウントの署名を無効にする方法はありますか?私は1つを見つけることができません。デフォルトのアカウントため

署名が appWd.EmailOptions.EmailSignature.NewMessageSignature = vbNullStringを設定することでオフにすることができ、それはまた後で復元することができますが、これは役立ちません。回避策の考え方は、既定のアカウントをプログラマチックに変更し、既定のアカウントの署名を無効にし、必要なTemplateNameを開いた後、すべてを元の状態に戻すことでした。ただし、以下の理由でこの問題が発生しません。

  • a)デフォルトアカウントプログラムを直接切り替える方法が見つかりません。これは、ユーザーインターフェイスをクリックすることによってのみ可能と思われます。
  • b)テンプレート名を保存した アカウントの署名が変更にかかわらず使用されるため、とにかく違いはありません。

この要件の根底にあるのは、VBAを使用してOutlookで既存のMailItemの一部をマージする必要があるということです。目的は、複数のアイテムの一部をメールリストに後で配布するための新しいMailItemにマージすることです。マージはすべてMailItem.GetInspector.WordEditorを使用して効果的に機能し、添付ファイルや埋め込みピクチャに関連する問題を整理しましたが、そのような単純な問題のように見える複数のシグネチャは問題を引き起こしています。それらを切る方法はありますか?署名は任意の構造を持っているので、WordEditorやHTMLでそれらを取り除くことは非常に困難です。

+0

SendUsingAccountを使用して、送信したいアカウントを切り替えてみましたか?私は間違っている可能性がありますが、署名は送信元のアカウントに基づいて生成されませんか? –

+0

私は試しました。少なくともPOP3とExchangeアカウントの両方が接続されているシステムでは動作しません。 –

答えて

0

最も洗練された解決策ではありませんが、このようなものはうまくいくはずです。

基本的には、表示する前に電子メールのHTMLを保存し、表示された後に比較し、異なる場合はHTMLを更新します。

Public Sub OutlookTest() 
    Dim Outlook    As Object 
    Dim MyTemplateItem  As Object 
    Dim OriginalBody  As String 

    Set Outlook = CreateObject("Outlook.application") 
    Set MyTemplateItem = Outlook.CreateItemFromTemplate("C:\SomePath\Example.oft") 

    OriginalBody = MyTemplateItem.HTMLBody 
    MyTemplateItem.Display 

    If MyTemplateItem.HTMLBody <> OriginalBody Then MyTemplateItem.HTMLBody = OriginalBody 
End Sub 
+0

いいアイデア。あなたが言うように、それほどエレガントではなく、かなり高価なCPUであり、HTMLbody(テキストとして)と.oftの両方が期間中保存される必要がありますが、うまくいくと思います。これまでのところ、テスト中の私の回避策は、送信される前にボディから「通常の疑わしい」署名を見つけて削除することでした。あなたの方法はそれより優れています。ありがとう。試してみる前にちょっと待ってみましょう。誰かがハックするのではなく、ソースで問題を止める方法を知っていることを願っています。 –

+0

私はあなたと付き合っています。私はちょっと周りを突き刺しました。たぶん、ドミトリーStreblechenko、ドミトリーは多くのことを知っているポーク:Outlook: –

+0

ありがとう。私は彼の注目を集めようとします。こんにちは、[Dimitry streblechenko](http://stackoverflow.com/users/332059/dmitry-streblechenko)。私のスレッドでは、[Ryan Wildry](http://stackoverflow.com/users/4839827/ryan-wildry)がこの質問をあなたに通知するよう提案しています。その中核は次のとおりです。 'VBAコードで、任意のOutlookアカウントのデフォルト署名を無効にすることは可能ですか?' –

関連する問題