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

Outlook で返信または転送するときに、複数の電子メール アカウントに異なる署名を追加する方法は?

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

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

しかし、多数の電子メール アカウントを持っていて、複数のアカウントに異なる署名をまとめて追加したい場合はどうすればよいでしょうか? このチュートリアルでは、この作業を簡単に行うための VBA メソッドを紹介します。


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

1. Outlook で、 他の + F11 キーを押して、Microsoft Visual Basic forApplicationsウィンドウを開きます。

2. アプリケーション用 Microsoft Visual Basic ウィンドウで、 このOutlookSession プロジェクト ペインで、次の VBA コードを ThisOutlookSession (コード) ウィンドウにコピーします。 スクリーンショットを参照してください:

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 コードをモジュール ウィンドウにコピーします。

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 "" '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 "" '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 行目に実際のメール アドレスを入力します。
  • 2)交換する必要があります 署名 コメントに従って、41、43、50、52 行目に実際の署名名を入力します。
  • 3) 上記の VBA コードを使用すると、57 つの電子メール アカウントに署名を追加できます。 それ以上のアカウントがある場合は、コードの XNUMX 行目をさらにケースに置き換えます。
  • 場合 ""
    If VBA.InStr(xSubject, "RE: ") = 1 なら
    xSignatureFile = xSignaturePath & "Signature1.htm"
    ElseIf VBA.InStr(xSubject, "FW: ") = 1 その後
    xSignatureFile = xSignaturePath & "Signature2.htm"

    xIsNew = 真
    サブを終了
    終了する場合

4. [Microsoft Visual Basic for Applications]ウィンドウで、[ 工具 > リファレンスの横にあるチェックボックスをオンにします Microsoft Word16.0オブジェクトライブラリ、クリック OK.

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

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

注: メール アカウントでメッセージに返信または転送するときに XNUMX つの署名が追加されている場合は、クリックしてください。 署名 > 署名 メッセージウィンドウで。 [既定の署名の選択] セクションで、XNUMX つの署名を持つ電子メール アカウントを選択し、 (なし) 返信/転送ドロップダウンリストから。


関連記事

OutlookでHTML署名をインポートまたは挿入する方法は?

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

Outlook 署名に背景色を挿入する方法?

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

Outlook で新しい電子メールを作成するときに、複数の電子メール アカウントに異なる署名を追加する方法

新しいメッセージを作成するときに Outlook で署名を自動的に追加する場合は、[署名] > [署名] をクリックし、以下に示すように特定の電子メール アカウントの署名を選択して、既定の署名を構成する必要があります。 しかし、多数の電子メール アカウントを持っていて、複数のアカウントに異なる署名をまとめて追加したい場合はどうすればよいでしょうか? このチュートリアルでは、この作業を簡単に行うための VBA メソッドを紹介します。

Outlook で返信と転送に異なる署名を設定する方法?

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


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

Outlook用Kutools - Outlook を強化する 100 以上の強力な機能

📧 自動メール: 不在時 (POP および IMAP で利用可能)  /  メール送信のスケジュール設定  /  メール送信時のルールによる自動CC/BCC  /  自動転送 (高度なルール)   /  あいさつを自動追加   /  複数受信者の電子メールを個別のメッセージに自動的に分割する ...

📨 電子メール管理: メールを簡単に思い出す  /  件名などで詐欺メールをブロック  /  重複するメールを削除する  /  高度な検索  /  フォルダーを統合する ...

📁 アタッチメント プロバッチ保存  /  バッチデタッチ  /  バッチ圧縮  /  自動保存   /  自動デタッチ  /  自動圧縮 ...

🌟 インターフェースマジック: 😊もっと可愛くてクールな絵文字   /  タブ付きビューで Outlook の生産性を向上  /  Outlook を閉じる代わりに最小化する ...

???? ワンクリックの驚異: 受信した添付ファイルをすべてに返信する  /   フィッシングメール対策  /  🕘送信者のタイムゾーンを表示 ...

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

オーバー 100の特長 あなたの探索をお待ちしています! ここをクリックして詳細をご覧ください。

 

 

Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations