Outlookで受信者に基づいて署名を自動的に変更するにはどうすればよいですか?
デフォルトでは、Outlookには異なるメールアカウント経由でメールを送信する際に署名を自動的に変更するための組み込み機能があります。しかし、それ以外にも、ここではToフィールド内の異なる受信者に基づいて署名を自動的に変更する方法をご紹介します。
VBAコードを使用して受信者に基づいて署名を自動的に変更する
VBAコードを使用して受信者に基づいて署名を自動的に変更する
Outlookでメールを送信する際に対応する受信者に異なる署名を適用するには、以下の手順に従ってください。
1. まず、Outlookで自動的に添付される署名機能を無効にする必要があります。[ファイル] > [オプション] をクリックして、Outlook オプションウィンドウを開きます。
2. Outlook オプションウィンドウで、左ペインの[メール]を選択し、メッセージ作成セクションの[署名]ボタンをクリックします。スクリーンショットをご覧ください:

3. 署名と文書ウィンドウで、Eメール署名タブの下にある既定の署名を選択セクションに移動し、メールアカウントドロップダウンリストからメールアカウントを選択し、新しいメッセージおよび返信/転送ドロップダウンリストからなしを選択します。すべてのメールアカウントがなしに設定されるまでこれらのステップを繰り返します。その後、OKボタンをクリックします。

注: この署名と文書ウィンドウで必要な署名を作成することもできます。
4. Outlook オプションウィンドウに戻ったら、[OK]ボタンをクリックします。
5. Alt + F11キーを押して、 Microsoft Visual Basic for Applicationsウィンドウを開きます。
6. Microsoft Visual Basic for Applicationsウィンドウで、左ペインの[ThisOutlookSession]をダブルクリックしてコードウィンドウを開き、以下のVBAコードをコピーして貼り付けます。スクリーンショットをご覧ください:

VBAコード: Outlookで受信者に基づいて署名を自動的に変更する
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by ExtendOffice 2022/08/01
Dim xMailItem As MailItem
Dim xRecipients As Recipients
Dim xRecipient As Recipient
Dim xRcpAddress As String
Dim xSignatureFile, xSignaturePath As String
Dim xFSO As Scripting.FileSystemObject
Dim xDoc As Document
Dim xFindStr As String
On Error Resume Next
Set xFSO = New Scripting.FileSystemObject
If Item.Class <> olMail Then Exit Sub
Set xMailItem = Item
Set xRecipients = xMailItem.Recipients
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
For Each xRecipient In xRecipients
If xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Then
xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
Else
xRcpAddress = xRecipient.AddressEntry.Address
End If
Select Case xRcpAddress
Case "Email Address 1"
xSignatureFile = xSignaturePath & "aaa.htm"
Exit For
Case "Email Address 2", "Email Address 3"
xSignatureFile = xSignaturePath & "bbb.htm"
Exit For
Case "Email Address 4"
xSignatureFile = xSignaturePath & "ccc.htm"
Exit For
End Select
Next
VBA.DoEvents
Set xDoc = xMailItem.GetInspector.WordEditor
xFindStr = "From: " & xMailItem.Recipients.Item(1).Name & " <" & xRcpAddress & ">"
If VBA.InStr(1, xMailItem.Body, xFindStr) <> 0 Then
xDoc.Application.Selection.HomeKey Unit:=wdStory, Extend:=wdMove
With xDoc.Application.Selection.Find
.ClearFormatting
.Text = xFindStr
.Execute Forward:=True
End With
With xDoc.Application.Selection
.MoveLeft wdCharacter, 2
.InsertParagraphAfter
.MoveDown Unit:=wdLine, Count:=1
End With
Else
With xDoc.Application.Selection
.EndKey Unit:=wdStory, Extend:=wdMove
.InsertParagraphAfter
.MoveDown Unit:=wdLine, Count:=1
End With
End If
xDoc.Application.Selection.InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
End Sub
注意:
- 1). VBAコード内で、「メールアドレス1/2/3/4」を特定の受信者のメールアドレスに置き換えてください。
- 2). 「aaa.htm」、「bbb.htm」、「ccc.htm」は対応する受信者に送信する指定された署名です。
- 3). この場合、「aaa」の署名は「メールアドレス1」に送られ、「bbb」の署名は「メールアドレス2」と「メールアドレス3"に送られ、「メールアドレス4」には「ccc」の署名が埋め込まれたメールが届きます。必要に応じてこれらを変更してください。
- 4). メールに複数の受信者がいる場合、コードは最初の受信者しか考慮しません。この場合、他の受信者は最初の受信者と同じ署名を持つメールを受け取ります。
7. 次に、[ツール] > [参照設定]をクリックして、[参照設定-プロジェクト]ダイアログボックスに進みます。ダイアログで、[Microsoft Word Object Library]と[Microsoft Scripting Runtime]の両方をチェックし、[OK]ボタンをクリックします。スクリーンショットをご覧ください:

8. Alt + Qキーを押して、Microsoft Visual Basic for Applicationsウィンドウを閉じます。
これで、メールを作成して[送信]ボタンを押すと、Toフィールドの受信者のメールアドレスに基づいて、対応する署名がメール本文の最後に自動的に挿入されます。
Outlookでメールを送信する際に現在の日付を自動的に挿入する署名:
Outlookで新しいメールを作成したり、返信や転送を行う際にタイムスタンプを署名としてメール本文に挿入したい場合は、有効にできます。 新しいメール、返信、転送時に日付署名を追加する オプションを Kutools for Outlook 使用して実現できます。スクリーンショットをご覧ください:
今すぐダウンロードして試してみる (30-日間無料トライアル)
最高のオフィス生産性ツール
速報: Kutools for Outlook が無料版をリリース!
新しい Kutools for Outlook の無料版を体験してください。70以上の素晴らしい機能が永遠に使えます!今すぐダウンロードをクリック!
🤖 Kutools AI : 高度なAI技術を使用して、メールの返信、要約、最適化、拡張、翻訳、作成を簡単に行います。
📧 メール自動化: 自動返信 (POPとIMAPで利用可能) / メール送信のスケジュール / メール送信時にルールによる自動 CC/BCC / 自動転送 (高度なルール) / 自動挨拶追加 / 複数の宛先を持つメールを個別のメールに自動的に分割...
📨 メール管理: メールの取り消し / 件名やその他によるスパムメールのブロック / 重複したメールの削除 / 高度な検索 / フォルダーを整理...
📁 添付ファイルプロ: バッチ保存 / バッチ切り離し / バッチ圧縮 / 自動保存 / 自動的に切り離す / 自動圧縮...
🌟 インターフェースマジック: 😊より美しくクールな絵文字 /重要なメールが来たときに通知 / クローズ中ではなくOutlookを最小化...
👍 ワンクリックの驚き: 全員に【Attachment】付きで返信 / フィッシング対策メール / 🕘送信者のタイムゾーンを表示...
👩🏼🤝👩🏻 連絡先とカレンダー: 選択したメールから連絡先を一括追加 /連絡先グループを個別のグループに分割 / 誕生日のリマインダーを削除...
Kutools for Outlook をワンクリックで即座にアンロック。待たずに今すぐダウンロードして効率を高めましょう!

