Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

テンプレートを使用して Excel で動的電子メール ジェネレーターを構築する

テンプレートを使用して Excel で動的電子メール ジェネレーターを構築する
Excel でテンプレートを使用して動的電子メール ジェネレーターを作成する
 

電子メールは、コミュニケーションのための最も強力なツールの 1 つです。電子メールの生成を自動化すると、時間を節約し、コミュニケーションの一貫性を確保できます。 Excel VBA では、テンプレートからパーソナライズされたメールを自動的に生成できる動的メール ジェネレーターを作成できます。

この記事では、Excel のテンプレートを使用して動的なメール ジェネレーターを作成します。

前提条件

  • Microsoft Excel (2016 以降)。
  • Excel の基本的な理解
  • VBA エディタへのアクセス ([開発] タブが有効)。

ステップ 1:Excel ワークブックを設定する

データシートを作成する

  • Data という名前の新しいシートを追加します。
  • 受信者情報の列を作成します:
    • 電子メール
    • 会社
    • 部門
    • 役割
    • 会議の議題
    • アクションアイテム
    • 送信者名

テンプレートを使用して Excel で動的電子メール ジェネレーターを構築する

テンプレート シートを作成する

  • 「Template」という名前の別のシートを作成します。
  • 次の列を作成します:
    • テンプレート ID
    • テンプレート名
    • 件名
    • メール本文

ステップ 2:電子メール テンプレートの作成

{{FirstName}}、{{Company}}、{{Department}}、{{Role}} などのプレースホルダーを使用して値を動的に挿入するメール テンプレートを作成します。

テンプレート 1:

自動オンボーディング メールのテンプレートを作成しましょう。

Dear {{FirstName}},
Welcome to {{Company}}! We're excited to have you on board.
Your account has been set up with the following details:
Department: {{Department}}
Role: {{Role}}
Best regards,
HR Team

このテンプレートは自動オンボーディング メールに使用され、送信前にプレースホルダーが実際の値に置き換えられ、受信者ごとにパーソナライズされたメッセージが保証されます。

説明:

  • {{FirstName}}:従業員の名のプレースホルダ。
  • {{Company}}:会社名のプレースホルダ。
  • {{Department}}:新しい従業員が割り当てられる部門のプレースホルダ。
  • {{Role}}:従業員の職務のプレースホルダ。

テンプレート 2:

会議後のコミュニケーション用に別のテンプレートを作成しました。

Hi {{FirstName}},
Thank you for your time during our discussion about {{Meeting Topic}}. As discussed, I'm following up on {{Action Item}}.
Let me know if you have any questions.
Best regards,
{{Sender Name}}

テンプレートを使用して Excel で動的電子メール ジェネレーターを構築する

ステップ 3:VBA コードを挿入する

VBA エディタを開くには:

  • 開発者に移動します。 タブ>> Visual Basic を選択します。 .
  • [挿入 ] をクリックします。>> モジュールを選択します .
  • 次のコードをコピーして貼り付けます。

テンプレートを使用して Excel で動的電子メール ジェネレーターを構築する

Option Explicit
Public Sub GenerateEmails()
 Dim ws As Worksheet
 Dim templateWs As Worksheet
 Dim lastRow As Long
 Dim i As Long
 Dim emailBody As String
 Dim subjectLine As String
 Dim templateID As Long
 
 ' Set references to worksheets
 Set ws = ThisWorkbook.Sheets("Data")
 Set templateWs = ThisWorkbook.Sheets("Templates")
 
 ' Find last row with data
 lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
 
 ' Get template ID from user
 templateID = InputBox("Enter the Template ID number:", "Select Template")
 
 ' Get template text
 subjectLine = GetTemplate("Subject_Line", templateID)
 emailBody = GetTemplate("Email_Body", templateID)
 
 ' Convert special characters to proper line breaks
 emailBody = Replace(emailBody, "\n", vbNewLine)
 
 ' Create Outlook items
 Dim outlookApp As Object
 Dim emailItem As Object
 
 Set outlookApp = CreateObject("Outlook.Application") 
 ' Loop through each row of data
 For i = 2 To lastRow
 ' Create new email
 Set emailItem = outlookApp.CreateItem(0)
 
 With emailItem
 ' Replace placeholders with actual data
 .Subject = ReplaceFields(subjectLine, i, ws)
 .Body = ReplaceFields(emailBody, i, ws) ' Changed from .HTMLBody to .Body
 .To = ws.Cells(i, 3).Value ' Email address in column C
 .Display ' Display email (change to .Send to send automatically)
 End With
 Next i
 
 Set outlookApp = Nothing
End Sub
Private Function GetTemplate(field As String, templateID As Long) As String
 Dim templateWs As Worksheet
 Dim templateRow As Range
 
 Set templateWs = ThisWorkbook.Sheets("Templates")
 
 ' Find the template row
 Set templateRow = templateWs.Columns(1).Find(What:=templateID, LookIn:=xlValues, LookAt:=xlWhole)
 
 If Not templateRow Is Nothing Then
 Select Case field
 Case "Subject_Line"
 GetTemplate = templateWs.Cells(templateRow.Row, 3).Value
 Case "Email_Body"
 GetTemplate = templateWs.Cells(templateRow.Row, 4).Value
 End Select
 End If
End Function
Private Function ReplaceFields(text As String, rowNum As Long, ws As Worksheet) As String
 Dim result As String
 result = text 
 ' Replace all field placeholders with actual data
 result = Replace(result, "{{FirstName}}", ws.Cells(rowNum, 1).Value)
 result = Replace(result, "{{LastName}}", ws.Cells(rowNum, 2).Value)
 result = Replace(result, "{{Company}}", ws.Cells(rowNum, 4).Value)
 result = Replace(result, "{{Department}}", ws.Cells(rowNum, 5).Value)
 result = Replace(result, "{{Role}}", ws.Cells(rowNum, 6).Value)
 result = Replace(result, "{{Meeting Topic}}", ws.Cells(rowNum, 7).Value)
 result = Replace(result, "{{Action Item}}", ws.Cells(rowNum, 8).Value)
 result = Replace(result, "{{Sender Name}}", ws.Cells(rowNum, 9).Value)
 
 ReplaceFields = result
End Function

ステップ 4:電子メール ジェネレーターを実行する

  • 開発者について タブ>> [マクロ] をクリックします。 .
  • [メールの生成 ] を選択します。>> [実行] をクリックします。 .

テンプレートを使用して Excel で動的電子メール ジェネレーターを構築する

  • メッセージ ボックス内>> テンプレート ID: を入力します。  1 .
  • テンプレート 1 に従ってすべてのメールが送信されます。

テンプレートを使用して Excel で動的電子メール ジェネレーターを構築する

  • 再び実行します コード。
  • メッセージ ボックス内>> テンプレート ID:2 を入力します。 .

テンプレートを使用して Excel で動的電子メール ジェネレーターを構築する

テンプレート 2 に従ってすべてのメールが送信されます。

テンプレートを使用して Excel で動的電子メール ジェネレーターを構築する

  • 生成されたメールを送信する前に確認します。
  • レビューが必要ない場合は、.送信を使用してください。 .Display の代わりにプロパティ すべてのメールを送信します。

カスタマイズのヒント

新しいプレースホルダー フィールドの追加:

  • データ に新しい列を追加します。 シート。
  • VBA コード内の ReplaceFields 関数を更新して、新しいフィールドを含めます。
  • {{FieldName}} の形式を使用して、新しいプレースホルダーをメール テンプレートに追加します。

HTML 形式:

電子メール テンプレートに HTML 形式を含めることができます。

<p style="color: blue;">This text will be blue</p>
<strong>This text will be bold</strong>

結論

このチュートリアルは、事前定義されたテンプレートと VBA 自動化を使用して Excel で動的な電子メールの生成を設定するのに役立ちます。これらのテンプレートは、ビジネス コミュニケーション、クライアントのフォローアップ、自動リマインダーに使用できます。この電子メール ジェネレーターは基盤として機能し、特定の要件に基づいてカスタマイズできます。テンプレートを作成し、データシートを更新し、VBA コード内のプレースホルダーを追加するだけです。実稼働環境で使用する前に、必ず徹底的にテストしてください。

ソリューション付きの高度な Excel 演習を無料で入手しましょう!
  1. Excel で循環参照を見つける方法 (2 つの簡単なコツ)

    ワークシートに Excel の数式を入力することがありますが、何らかの理由で機能しません。代わりに、Circular Reference に言及する警告プロンプトが表示されます .この記事では、Excel で循環参照を見つける方法について説明します。また、いくつかの美しい例と説明を使用して、修正または削除する方法についても学びます. 練習用ワークブック 次のワークブックをダウンロードして練習してください。 Excel での循環参照 数式が直接的または間接的に独自のセルに言及されている場合、循環参照 起こります。それは難しいかもしれません。計算時に、数式が独自のセルを使用すると、循環参照が

  2. Excel で複数の基準に基づいてテーブルからデータを抽出する方法

    必要なときにデータを抽出することは、スプレッドシートを使用する主な要因であり、Excel も例外ではありません。データを Excel に表形式で保存して、それらを抽出します。今日は、複数の基準に基づいてテーブルからデータを抽出する方法を紹介します。 まず最初に、例のベースとなるデータセットについて知りましょう。 ここには、映画のリストと、ジャンルと主演俳優、およびリリース年を含むテーブルがあります。このデータセットを使用して、複数の基準に基づいてデータを取得します。 これは、物事を単純にするための基本的なテーブルであることに注意してください。実際のシナリオでは、はるかに大規模で複雑な