KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Outlook で返信や転送の際に、複数のメールアカウントそれぞれに異なる署名を自動的に追加するにはどうすればよいですか?

著者Amanda Li変更日

チュートリアル「Outlook でのメール署名」をご覧いただければ、Outlook で署名を作成する方法がすぐにご理解いただけるでしょう。ただし、新しい署名を作成した後、返信や転送時にその署名を使用したい場合は、メッセージウィンドウで手動で署名>作成した署名を選択して追加する必要があります。

もちろん、新しいメッセージに返信または転送する際に、Outlook が自動的に署名を追加するように設定することも可能です。その場合は、署名 > 署名をクリックし、特定のメールアカウント用の署名を選択してください(下図参照)。

Outlook で返信または転送時に複数のメールアカウントに異なる署名を追加する手順

しかし、多数のメールアカウントがあり、複数のアカウントに一括でそれぞれ異なる署名を追加したい場合はどうすればよいでしょうか?このチュートリアルでは、その作業を簡単に完了できる VBA メソッドをご紹介します。


Outlook で返信または転送時に複数のメールアカウントに異なる署名を追加する

1。Outlook でAlt+F11キーを押すと、「Microsoft Visual Basic for Applications」ウィンドウが開きます。

2。「Microsoft Visual Basic for Applications」ウィンドウで、プロジェクトウィンドウのThisOutlookSessionをダブルクリックし、表示された ThisOutlookSession(コード)ウィンドウに以下の VBA コードをコピーしてください。スクリーンショットをご参照ください。

Outlook で返信または転送時に複数のメールアカウントに異なる署名を追加する手順

VBA コード: Outlook で新規メールを作成する際に複数のメールアカウントに異なる署名を追加する - ThisOutlookSession

Public WithEvents GInspectors As Inspectors
Public WithEvents GExplorer As Explorer

Private Sub Application_Startup()
  Set GInspectors = Application.Inspectors
  Set GExplorer = Application.ActiveExplorer
End Sub

Private Sub GExplorer_InlineResponse(ByVal Item As Object)
‘Update by ExtendOffice
Dim xMail As MailItem
On Error Resume Next
EndTimer
If Item.Class = olMail Then
  Set xMail = Item
  Set GInspector = Nothing
  Set GInspector = xMail.GetInspector
  StartTimer
End If
End Sub

Private Sub GInspectors_NewInspector(ByVal Inspector As Inspector)
  On Error Resume Next
  EndTimer
  Set GInspector = Nothing
  Set GInspector = Inspector
  StartTimer
End Sub

3。「Microsoft Visual Basic for Applications」ウィンドウで、挿入 > 標準モジュールをクリックしてください。その後、次の VBA コードをモジュールウィンドウにコピーします。

Outlook で返信または転送時に複数のメールアカウントに異なる署名を追加する手順

VBA コード: Outlook で返信または転送時に複数のメールアカウントに異なる署名を追加する - 標準モジュール

Public Declare PtrSafe Function SetTimer Lib "user32" (ByVal HWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As Long
Public Declare PtrSafe Function KillTimer Lib "user32" (ByVal HWnd As Long, ByVal nIDEvent As Long) As Long
Public TimerID As Long
Public GInspector As Inspector

Sub StartTimer()
  On Error Resume Next
  TimerID = SetTimer(0&, 0&, 1000&, AddressOf TimerProc)
End Sub

Sub EndTimer()
  On Error Resume Next
  KillTimer 0&, TimerID
End Sub

Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, ByVal nIDEvent As Long, ByVal dwTimer As Long)
  On Error Resume Next
  Call SetSignatureToAccount
  EndTimer
End Sub

Sub SetSignatureToAccount()
‘Update by ExtendOffice
Dim xMail As MailItem
Dim xSignatureFile, xSignaturePath As String
Dim xSubject As String
Dim xDoc As Document
Dim xAccount As Account
Dim xIsNew As Boolean
Dim xInspector As Inspector
Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
On Error Resume Next
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
xSubject = GInspector.Caption
Set xDoc = GInspector.WordEditor
xIsNew = False
Set xMail = GInspector.CurrentItem
Select Case xMail.Parent.Parent
  Case "name1@example.com" 'Replace the email address in double quotes
    If VBA.InStr(xSubject, "RE: ") Then
      xSignatureFile = xSignaturePath & "Signature1.htm" 'Replace "Signature1" with your actual signature name that you will set as the signature when you reply to a message.
    ElseIf VBA.InStr(xSubject, "FW: ") Then
      xSignatureFile = xSignaturePath & "Signature2.htm" 'Replace "Signature2" with your actual signature name that you will set as the signature when you forward a message.
    Else
      xIsNew = True
      Exit Sub
    End If
  Case "name2@example.com" 'Replace the email address in double quotes
    If VBA.InStr(xSubject, "RE: ") Then
      xSignatureFile = xSignaturePath & "Signature3.htm" 'Replace "Signature3" with your actual signature name that you will set as the signature when you reply to a message.
    ElseIf VBA.InStr(xSubject, "FW: ") Then
      xSignatureFile = xSignaturePath & "Signature4.htm" 'Replace "Signature4" with your actual signature name that you will set as the signature when you forward a message.
    Else
      xIsNew = True
      Exit Sub
    End If
  'Add more Cases for more email accounts
End Select
If xIsNew = True Then
  With xDoc.Application.Selection
    .WholeStory
    .EndKey
    .InsertParagraphAfter
    .MoveDown Unit:=wdLine, Count:=1
    .InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
  End With
Else
  With xDoc.Application.Selection
    .MoveRight Unit:=wdCharacter, Count:=1
    .HomeKey Emptyparam, Emptyparam
    .InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
  End With
End If
Set xDoc = Nothing
Set GInspector = Nothing
Set xMail = Nothing
End Sub
注:
  • 1) 39 行目および48 行目のname1@example.comname2@example.comを、実際のメールアドレスに置き換えてください。
  • 2) コメントに従い、41 行目、43 行目、50 行目および52 行目のSignatureを、実際の署名に置き換えてください。
  • 3) 上記の VBA コードを使えば、2 つのメールアカウントに署名を追加できます。アカウントがさらに多い場合は、コードの57 行目を、より多くの Case 文に置き換えてください。
  • Case 「name@example.com」
    If VBA.InStr(xSubject, 「RE: 」) = 1 Then
    xSignatureFile = xSignaturePath & "Signature1.htm"
    ElseIf VBA.InStr(xSubject, 「FW: 」) = 1 Then
    xSignatureFile = xSignaturePath & "Signature2.htm"
    Else
    xIsNew = True
    Exit Sub
    End If

4。「Microsoft Visual Basic for Applications」ウィンドウで、ツール > 参照をクリックし、Microsoft Word 16.0 オブジェクトライブラリの横にあるチェックボックスをオンにして、OKをクリックしてください。

Outlook で返信または転送時に複数のメールアカウントに異なる署名を追加する手順

5。Outlook を再起動して、VBA コードを保存してください。

6。これで、署名を設定したメールアカウントでメッセージに返信または転送する際、対応する署名が自動的に追加されます。

注:返信または転送時に同じメールアカウントで署名が2 つ追加されてしまう場合は、メッセージウィンドウで署名署名をクリックしてください。「既定の署名の選択」セクションで、該当のメールアカウント(署名が2 つ設定されているもの)を選択し、返信/転送用のドロップダウンリストから(なし)を選択します。

Outlook で返信または転送時に複数のメールアカウントに異なる署名を追加する手順

関連記事

Outlook で HTML 署名をインポートまたは挿入するには、どうすればよいですか?

たとえば、Web サイトから HTML 署名をダウンロードしてOutlook にインポートしたい場合、簡単な方法はあるでしょうか?この記事では、HTML 署名をOutlook にステップ・バイ・ステップでインポートまたは挿入する方法をわかりやすく解説します。

Outlook の署名に背景色を挿入するにはどうすればよいですか?

Outlook でメールに背景色を追加したり削除したりするのは簡単です。しかし、Outlook の署名に背景色を挿入したり削除したりするにはどうすればよいでしょうか?以下の回避策でこの問題を解決できます。

Outlook で新規メールを作成する際、複数のメールアカウントにそれぞれ異なる署名を自動的に追加するにはどうすればよいですか?

新しいメッセージを作成する際に Outlook が自動的に署名を追加するには、「署名」>「署名」をクリックして、特定のメールアカウント用の署名を選択し、既定の署名を設定する必要があります(下図参照)。 しかし、多数のメールアカウントがあり、複数のアカウントに一括でそれぞれ異なる署名を追加したい場合はどうすればよいでしょうか? このチュートリアルでは、その作業を簡単に完了できる VBA メソッドをご紹介します。

Outlook で返信と転送にそれぞれ異なる署名を設定するにはどうすればよいですか?

通常、Outlook ではアカウントごとに異なる署名を設定できますが、返信と転送でそれぞれ別の署名を使うことはできますか? たとえば、返信時には署名1 を、転送時には署名2 を自動挿入したい場合、Outlook でこの設定をどのように実現すればよいでしょうか?


最高の Office 生産性ツール

まったく新しいKutools for Outlook を、100 以上の驚きの機能とともに体験しましょう!今すぐダウンロード!

🤖KUTOOLS AI高度な AI 技術を活用して、メールの返信、要約、最適化、拡張、翻訳、作成など、あらゆる操作をラクラクこなします。

📧メール自動化自動返信(POP および IMAP 対応)/メールのスケジュール送信/メール送信時にルールに基づいて自動 CC/BCC/自動転送(高度なルール)/自動で挨拶文を追加/複数の宛先を持つメールを個別のメッセージに自動分割...

📨メール管理メールの取り消し/件名などを基準に詐欺メールをブロック/重複したメールを削除/高度な検索/フォルダーを整理...

📁添付ファイルプロ一括保存/一括分離/一括圧縮/自動保存/自動的に切り離す/自動圧縮...

🌟インターフェースの魅力😊さらに美しくクールな絵文字を多数収録/重要なメールが届いた際に通知/Outlook を閉じる代わりに最小化...

👍ワンクリックの驚き全員に【Attachment】付きで返信/フィッシングメール対策/🕘送信者の現在時刻ゾーンを表示...

👩🏼‍🤝‍👩🏻連絡先とカレンダー選択したメールから連絡先を追加を一括登録/連絡先グループを個別のグループに分割/誕生日のリマインダーを削除...

Kutools はお好みの言語でお使いいただけます!英語、スペイン語、ドイツ語、フランス語、中国語をはじめ、40 以上の言語をサポートしています!

ワンクリックでKutools for Outlook の機能を即解放!今すぐダウンロードして、効率を飛躍的にアップさせましょう!

kutools for outlook features1kutools for outlook features2

🚀 ワンクリックダウンロード — Office アドインをすべて入手

強く推奨:Kutools for Office(5-in-1)

ワンクリックで5 つのインストーラーを 一括ダウンロード! ―Kutools for Excel、Outlook、Word、PowerPointおよびOffice Tab Pro今すぐダウンロード!

  • ワンクリックで簡単操作:5 つのセットアップパッケージをたった1 回のクリックで一括ダウンロードできます。
  • 🚀どんな Office 作業にも対応可能:必要なときに、必要なアドインをすぐインストールできます。
  • 🧰含まれるもの:Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint