2016-04-14 12 views
0

電子メールを送信する前に、段落改行を改行に変更する必要があります。置換を使用する代わりに、私はマクロを実行したいと思います。 ThisOutlookSessionに配置された以下は、マクロとして保存されません。あなたは引数を渡すことができないので、私は仮定する???しかし、どこにコードを置くのですか?段落改行を改行に変更する

Private Sub ChgParagraphsToLineBreaks(ByVal Item As Object, Cancel As Boolean) 
    Item.Body = Replace(Item.Body, "^p", "^l") 
End Sub 

答えて

0

あなたのサブは、電子メールが送信されているときにトリガーされるApplication.ItemSend()イベントで呼び出す必要があります。このイベントで送信をキャンセルすることもできます。

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 

    ChgParagraphsToLineBreaks Item 

End Sub 

Private Sub ChgParagraphsToLineBreaks(ByVal Item As Object) 
    dim strBody as string 
    strBody = Item.Body 
    strBody = Replace(strBody, "^p", "^l") 
    Item.Body = strBody 
End Sub 
+0

ありがとうございます。ファローアップ。ボディ全体を選択するVBAコードはありますか(CTRL + Aなど)?上記の置換は、ボディが選択されていない限り動作しません(少なくとも私に起こっていることです)。 – user2140857

+0

@ user2140857私の編集した回答を見てください –