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

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: ") = 1 Then
      Exit Sub
    ElseIf VBA.InStr(xSubject, "FW: ") = 1 Then
      Exit Sub
    Else
      xSignatureFile = xSignaturePath & "Signature1.htm" 'Replace "Signature1" with your actual signature name
      xIsNew = True
    End If
  Case "" 'Replace the email address in double quotes
    If VBA.InStr(xSubject, "RE: ") Then
      Exit Sub
    ElseIf VBA.InStr(xSubject, "FW: ") Then
      Exit Sub
    Else
      xSignatureFile = xSignaturePath & "Signature2.htm" 'Replace "Signature2" with your actual signature name
      xIsNew = True
    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)交換する必要があります Signature1 & Signature2 45 行目と 54 行目に実際の署名名を入力します。
  • 3) 上記の VBA コードを使用すると、57 つの電子メール アカウントに署名を追加できます。 それ以上のアカウントがある場合は、コードの XNUMX 行目をさらにケースに置き換えます。
  • 場合 ""
    If VBA.InStr(xSubject, "RE: ") = 1 なら
    サブを終了
    ElseIf VBA.InStr(xSubject, "FW: ") = 1 その後
    サブを終了

    xSignatureFile = xSignaturePath & "Signature.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 以上の強力な機能

🤖 AIメールアシスタント: AI の魔法を備えたインスタント プロのメール - ワンクリックで天才的な返信、完璧な口調、多言語の習得。メールを簡単に変革しましょう! ...

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

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

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

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

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

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

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

 

 

Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi,
I tried to initiate this settings in my outlook for changing the signature automatically, but it doesn't function.

the signature stays the same while using different email accounts.

any idea why ?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations