多くのユーザーは、Outlookが電子メールのさまざまな受信者に対してさまざまな署名を自動選択できることを望んでいます。 したがって、この記事では、VBAを介してそれを実現する方法を説明します。
既定では、Outlookでは、さまざまな署名を新しい電子メール、返信、および転送に自動挿入することしかできません。 ただし、多くの人は、Outlookがさまざまな受信者に対してさまざまな署名を自動選択できることを望んでいます。 残念ながら、Outlookはそのような直接的な機能を提供していません。 したがって、サードパーティのアドインやVBAコードなど、他の方法を探す必要があります。 さて、以下では、VBAコードの一部を公開します。これは、そよ風のようにそれを実現するのに役立ちます。

受信者ごとに異なる署名を自動選択
- まず、Outlookプログラムを起動してください。
- 次に、署名の自動挿入機能を無効にすることをお勧めします。
- まず、「ファイル」メニューに移動し、「オプション」を選択します。
- 「Outlookのオプション」ウィンドウで、「メール」タブに切り替えます。
- 次に、「署名」ボタンを見つけてクリックします。
- 次に、ポップアップダイアログボックスで、「新規メッセージ」と「返信/転送」の両方で「(なし)」を設定します。
- その後、一連の「OK」をクリックして変更を保存します。
- その後、Outlookのメインウィンドウに戻り、「Alt + F11」キーを押すことができます。
- 次に、「Microsoft Visual Basic for Applications」ウィンドウで、「ThisOutlookSession」プロジェクトを見つけて開きます。
- 続いて、次のVBAコードをコピーしてこのプロジェクトに貼り付けます。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objMail As Outlook.MailItem
Dim objRecipients As Outlook.Recipients
Dim objRecipient As Outlook.recipient
Dim strRecipientAddress As String
Dim strSignatureFile As String
Dim objFileSystem As Object
Dim objTextStream As Object
Dim strSignature As String
If TypeOf Item Is MailItem Then
Set objMail = Item
Set objRecipients = objMail.Recipients
End If
'Select different signature files based on recipients
'You can change the conditions as per you actual needs
If objRecipients.Count = 1 Then
Set objRecipient = objRecipients.Item(1)
strRecipientAddress = objRecipient.Address
If strRecipientAddress = "mandy@datanumen.com" Then
strSignatureFile = CStr(Environ("USERPROFILE")) & "\AppData\Roaming\Microsoft\Signatures\Test John Smith.htm"
ElseIf strRecipientAddress = "anne@datanumen.com" Or strRecipientAddress = "tony@datanumen.com" Then
strSignatureFile = CStr(Environ("USERPROFILE")) & "\AppData\Roaming\Microsoft\Signatures\Johnny.htm"
ElseIf strRecipientAddress = "abby@datanumen.com" Then
strSignatureFile = CStr(Environ("USERPROFILE")) & "\AppData\Roaming\Microsoft\Signatures\New John Smith.htm"
End If
Else
strSignatureFile = CStr(Environ("USERPROFILE")) & "\AppData\Roaming\Microsoft\Signatures\John Smith.htm"
End If
'Read the specific signature file
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objTextStream = objFileSystem.OpenTextFile(strSignatureFile)
strSignature = objTextStream.ReadAll
'Insert the signature to this email
objMail.HTMLBody = objMail.HTMLBody & "<HTML><BODY><br>" & strSignature & "</br></HTML></BODY>"
End Sub
- その後、このコードに署名する必要があります。
- 後でOutlookマクロ設定を変更して、署名付きマクロを許可します。
- これ以降、[送信]ボタンをクリックして電子メールを送信するたびに、Outlookは受信者を識別し、電子メール本文の最後に対応する署名を自動的に挿入します。
受信メールに隠された悪意のあるマクロに注意してください
今日、ウイルスは非常に成熟して強力になっています。 彼らは常に電子メールで無害なものとしてそれらを偽装します。 したがって、Outlookでマクロを利用する場合は、悪意のあるマクロに対する警戒を強める必要があります。 そうしないと、PSTデータが危険にさらされたままになります。 PSTが破損した場合は、最善を尽くします PSTを回復する データ。 この場合、次のような強力なツールを適用することをお勧めします。 DataNumen Outlook Repair.
著者紹介:
Shirley Zhangは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 SQL修正 と見通し修理ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

