Outlookで誕生日当日の連絡先に挨拶メッセージを自動的に送信するにはどうすればよいですか?
時々、Outlookで連絡先の誕生日が今日の場合、挨拶メッセージを自動的に送信したいと思うかもしれません。連絡先の誕生日を一つずつ確認し、挨拶メールを手動で送信するのは面倒な作業です。この記事では、その問題を迅速かつ簡単に解決するためのVBAコードを紹介します。
OutlookでVBAコードを使用して誕生日に基づいて連絡先に挨拶メッセージを自動送信する
OutlookでVBAコードを使用して誕生日に基づいて連絡先に挨拶メッセージを自動送信する
誕生日が今日の連絡先に挨拶メッセージを自動送信するには、まずVBAコードを挿入し、その後、コードをトリガーするための繰り返しタスクを作成する必要があります。
次の手順が役立つかもしれません:
1. Outlookを起動し、ALT + F11キーを押したままにすると、Microsoft Visual Basic for Applicationsウィンドウが開きます。
2. Microsoft Visual Basic for Applicationsウィンドウで、Project1(VbaProject.OTM)ペインからThisOutlookSessionをダブルクリックしてモジュールを開き、次のコードを空白のモジュールにコピーして貼り付けます。
VBAコード: 誕生日に基づいて連絡先に挨拶メッセージを自動送信する:
Private Sub Application_Reminder(ByVal Item As Object)
Dim xTempMail As MailItem
Dim xFilePath As String
Dim xItems As Outlook.Items
Dim xItem As Object
Dim xContactItem As Outlook.ContactItem
Dim xTodayDate As String
Dim xBirthdayDate As String
Dim xGreetingMail As Outlook.MailItem
Dim xWordDoc As Word.Document
Dim xGreetings As String
Dim xBool As Boolean
xFilePath = CreateObject("shell.Application").NameSpace(5).self.Path & "\UserTemplates"
Set xFSO = CreateObject("Scripting.FileSystemObject")
If xFSO.FolderExists(xFilePath) = False Then
MkDir xFilePath
End If
If IsFileExists(xFilePath & "\Birthday Greeting Mail.oft") = False Then
Set xTempMail = Outlook.CreateItem(olMailItem)
xTempMail.SaveAs xFilePath & "\Birthday Greeting Mail.oft", olTemplate
xTempMail.Close olDiscard
End If
If (TypeOf Item Is TaskItem) And (Item.Subject = "Send Birthday Greeting Mail") Then
xGreetings = "Happy Birthday!"
xGreetings = InputBox("Input birthday greetings", "Kutools for Outlook", xGreetings)
xTodayDate = Month(Date) & "-" & Day(Date)
Set xItems = Outlook.Application.Session.GetDefaultFolder(olFolderContacts).Items
For Each xItem In xItems
If Not (TypeOf xItem Is ContactItem) Then Exit Sub
Set xContactItem = xItem
xBirthdayDate = Month(xContactItem.Birthday) & "-" & Day(xContactItem.Birthday)
If xBirthdayDate = xTodayDate Then
Set xGreetingMail = Outlook.Application.CreateItemFromTemplate(xFilePath & "\Birthday Greeting Mail.oft")
Set xWordDoc = xGreetingMail.GetInspector.WordEditor
xWordDoc.Range.InsertBefore "Dear " & xContactItem.LastName & Chr(10) & xGreetings & Chr(10) & Chr(10)
With xGreetingMail
.Recipients.Add (xContactItem.Email1Address)
.Subject = "Happy Birthday!"
.Display
.Close (olSave)
.Send
End With
End If
Next
End If
End Sub
Function IsFileExists(ByVal FileName As String) As Boolean
Dim xFileSystem As Object
Set xFileSystem = CreateObject("Scripting.FileSystemObject")
If xFileSystem.FileExists(FileName) = True Then
IsFileExists = True
Else
IsFileExists = False
End If
End Function

3. 次に、Microsoft Visual Basic for Applicationsウィンドウで「ツール」>「参照設定」をクリックし、表示された「参照設定-Project1」ダイアログボックスで、「利用可能な参照」リストボックスから「Microsoft Word Object Library」と「Microsoft Scripting Runtime」オプションをチェックします(スクリーンショット参照)。

4. その後、「OK」をクリックしてダイアログを閉じます。次に、VBAコードをトリガーするタスクを作成する必要があります。タスクペインに移動し、「新規タスク」をクリックしてタスクを作成してください。
(1.) 件名行に「Send Birthday Greeting Mail」という件名を入力します。
(2.) 次に、タスクタブの下にある「繰り返し」をクリックします。
(3.) 「タスクの繰り返し」ダイアログボックスで、「毎日」を選択し、「繰り返しパターン」セクションから「1日ごと」オプションを指定します。

5. その後、「 OK」をクリックしてダイアログボックスを閉じ、タスクウィンドウに戻ります。以下のスクリーンショットに示すように、繰り返しタスクのリマインダーを設定してください。

6. 今後、リマインダーが通知されると、マクロが即座にトリガーされます。以下のスクリーンショットに示すように、誕生日の挨拶を挿入するよう促すダイアログボックスが表示されます。

7. 「OK」ボタンをクリックすると、誕生日が今日の連絡先に挨拶メールが自動的に送信されます。
最高のオフィス生産性ツール
速報: Kutools for Outlook が無料版をリリース!
新しい Kutools for Outlook の無料版を体験してください。70以上の素晴らしい機能が永遠に使えます!今すぐダウンロードをクリック!
🤖 Kutools AI : 高度なAI技術を使用して、メールの返信、要約、最適化、拡張、翻訳、作成を簡単に行います。
📧 メール自動化: 自動返信 (POPとIMAPで利用可能) / メール送信のスケジュール / メール送信時にルールによる自動 CC/BCC / 自動転送 (高度なルール) / 自動挨拶追加 / 複数の宛先を持つメールを個別のメールに自動的に分割...
📨 メール管理: メールの取り消し / 件名やその他によるスパムメールのブロック / 重複したメールの削除 / 高度な検索 / フォルダーを整理...
📁 添付ファイルプロ: バッチ保存 / バッチ切り離し / バッチ圧縮 / 自動保存 / 自動的に切り離す / 自動圧縮...
🌟 インターフェースマジック: 😊より美しくクールな絵文字 /重要なメールが来たときに通知 / クローズ中ではなくOutlookを最小化...
👍 ワンクリックの驚き: 全員に【Attachment】付きで返信 / フィッシング対策メール / 🕘送信者のタイムゾーンを表示...
👩🏼🤝👩🏻 連絡先とカレンダー: 選択したメールから連絡先を一括追加 /連絡先グループを個別のグループに分割 / 誕生日のリマインダーを削除...
Kutools for Outlook をワンクリックで即座にアンロック。待たずに今すぐダウンロードして効率を高めましょう!

