メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Outlookで返信または転送時に複数のメールアカウントに異なる署名を追加するにはどうすればよいですか?

Author Amanda Li Last modified

Outlookでの電子メール署名」のチュートリアルから、Outlookで署名を作成する方法を理解しているはずです。しかし、新しい署名を作成した後、返信またはメッセージを転送する際にその署名を追加したい場合は、メッセージウィンドウで「署名」>「作成された署名」を選択して手動で追加する必要があります。

もちろん、Outlookで新しいメッセージに返信または転送する際に自動的に署名を追加させることもできます。「署名」「署名」をクリックし、以下のように特定のメールアカウント用の署名を選択します。

the steps of adding different signatures to multiple email accounts when reply or forward in Outlook

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


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

1. お使いのOutlookで、Alt + F11キーを押してMicrosoft Visual Basic for Applicationsウィンドウを開きます。

2. Microsoft Visual Basic for Applicationsウィンドウで、プロジェクトペイン内のThisOutlookSessionをダブルクリックし、以下のVBAコードをThisOutlookSession(コード)ウィンドウにコピーします。スクリーンショットをご覧ください:

the steps of adding different signatures to multiple email accounts when reply or forward in 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コードをモジュールウィンドウにコピーします。

the steps of adding different signatures to multiple email accounts when reply or forward in 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.comおよびname2@example.comを実際のメールアドレスに置き換えてください。
  • 2) 41行目、43行目、50行目、52行目の「署名」をコメントに従って実際の署名名に置き換えてください。
  • 3) 上記のVBAコードを使用すると、2つのメールアカウントに署名を追加できます。さらに多くのアカウントがある場合は、コードの57行目を以下のようにもっとケース文に置き換えてください:
  • 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 Object Library」のチェックボックスをオンにして「OK」をクリックします。

the steps of adding different signatures to multiple email accounts when reply or forward in Outlook

5. Outlookを再起動し、VBAコードを保存します。

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

注意: 返信または転送時に2つの署名が追加される場合、メッセージウィンドウで「署名」>「署名」をクリックしてください。「デフォルトの署名を選択」セクションで、2つの署名を持つメールアカウントを選択し、「返信/転送」ドロップダウンリストから「(なし)」を選んでください。

the steps of adding different signatures to multiple email accounts when reply or forward in Outlook

関連記事

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

たとえば、ウェブサイトからいくつかのHTML署名をダウンロードし、それをOutlookにインポートしたいとします。簡単な方法はありますか?この記事では、ステップバイステップでOutlookにHTML署名をインポートまたは挿入する方法を説明します。

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

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

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

新しいメッセージを作成する際にOutlookに自動的に署名を追加させたい場合、「署名」>「署名」をクリックして、以下のように特定のメールアカウント用の署名を選択することでデフォルトの署名を設定する必要があります。しかし、多くのメールアカウントがあり、それらすべてに異なる署名を一括で追加したい場合はどうすればよいでしょうか?このチュートリアルでは、この作業を簡単に実行できるVBAメソッドを紹介します。

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

通常、Outlookでは異なるアカウントに異なる署名を設定できますが、返信と転送に異なる署名を適用したことはありますか?つまり、メールに返信するときに署名1が挿入され、メールを転送するときに署名2が適用されるようにしたいのです。Outlookでこのタスクをどのように解決すればよいでしょうか?


最高のオフィス生産性ツール

最新情報: Kutools for Outlook 無料版リリース!

新しくなった Kutools for Outlook を100以上の素晴らしい機能とともに体験してください!今すぐダウンロードしてみましょう!

🤖 Kutools AI : 高度なAI技術を活用し、メールの返信、要約、最適化、拡張、翻訳、作成までを簡単に処理します。

📧 メール自動化: 自動返信(POPとIMAPに対応) / スケジュール電子メールを送信 /送信時にルールで自動 CC/BCC / 高度なルールによる自動転送 / 挨拶を自動追加 / 複数宛先メールを自動的に一通ずつ分割...

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

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

🌟 インターフェイスマジック: 😊さらに美しくてクールな絵文字 /重要なメール到着時に通知 / Outlookを閉じるのではなくグループを最小化...

👍 ワンクリック便利機能: 全員に【Attachment】付きで返信 / フィッシング対策メール / 🕘送信者のタイムゾーン表示...

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

お好みの言語で Kutools を利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上の言語に対応!

Kutools for Outlookをワンクリックですぐに利用開始。待たずに今すぐダウンロードして効率を高めましょう!

kutools for outlook features1 kutools for outlook features2

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

強くおすすめ: Kutools for Office(5-in-1)

ワンクリックで五つのインストーラーを同時ダウンロード ― Kutools for Excel、Outlook、Word、PowerPointOffice Tab Pro 今すぐダウンロード!

  • ワンクリックの便利さ: 五つのセットアップパッケージを一度にダウンロードできます。
  • 🚀 あらゆるOffice作業に準備完了: 必要なアドインをいつでもインストール可能です。
  • 🧰 含まれるもの: Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint