كيف يمكن إرسال رسالة تهنئة تلقائيًا إلى جهة اتصال في Outlook إذا كان عيد ميلاده اليوم؟
قد ترغب أحيانًا في إرسال رسالة تهنئة تلقائيًا إلى جهة اتصال في Outlook عندما يكون عيد ميلاده اليوم. لكن التحقق من عيد ميلاد كل جهة اتصال واحدة تلو الأخرى وإرسال رسائل التهنئة يدويًّا سيكون أمرًا شاقًّا ومُستهلكًا للوقت. في هذه المقالة، سأقدّم لك كود VBA لإنجاز هذه المهمة بسرعة وسهولة!
إرسال رسالة تهنئة تلقائيًا إلى جهة اتصال بناءً على عيد ميلاده باستخدام كود VBA في Outlook
إرسال رسالة تهنئة تلقائيًا إلى جهة اتصال بناءً على عيد ميلاده باستخدام كود VBA في Outlook
لإرسال رسالة تهنئة تلقائيًا إلى جهة اتصال عند حلول عيد ميلادها اليوم، أدخل أولًا كود VBA، ثم أنشئ مهمة متكررة لتشغيل هذا الكود.
قد تساعدك الخطوات التالية:
1. افتح Outlook، ثم اضغط باستمرار على مفتاحَيALT + F11 لفتح نافذةMicrosoft Visual Basic for Applications.
2. في نافذةMicrosoft Visual Basic for Applications، انقر مرتين علىThisOutlookSession من جزءProject1 (VbaProject.OTM) لفتح الوحدة النمطية، ثم انسخ والصق الكود التالي في الوحدة النمطية الفارغة.
كود 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. بعد ذلك، انقر علىTools > References في نافذةMicrosoft Visual Basic for Applications. ثم في مربع الحوار الظاهرReferences - Project1، حدد الخيارينMicrosoft Word Object Library وMicrosoft Scripting Runtime من قائمةAvailable References، كما هو موضح في لقطة الشاشة:

4. بعد ذلك، انقر علىOK لإغلاق مربع الحوار. الآن، يجب أن تُنشئ مهمة لتشغيل كود VBA. انتقل إلى جزءTask، ثم انقر علىمهمةلإنشاء مهمة:
(1.) في سطرSubject، يجب أن تُدخل الموضوع كالتالي:Send Birthday Greeting Mail؛
(2.) بعد ذلك، انقر علىRecurrenceضمن تبويبTask؛
(3.) في مربع حوارTask Recurrence، حددDailyوعيّن الخيارevery 1 day(s)من قسمنمط التكرار؛

5. بعد ذلك، انقر علىOK لإغلاق مربع الحوار. عند العودة إلى نافذة المهمة، يُرجى تعيين تذكير للمهمة المتكررة كما هو موضح في لقطة الشاشة التالية:

6. بدءًا من الآن، بمجرد ظهور تنبيه التذكير، سيتم تشغيل الماكرو فورًا، وستظهر نافذة حوار لتذكيرك بإدخال تحيات عيد الميلاد كما هو موضح في لقطة الشاشة التالية:

7. بعد ذلك، انقر على زرOK، وسيتم إرسال رسالة تهنئة تلقائيًا إلى جهة الاتصال التي يكون عيد ميلادها اليوم.
أفضل أدوات إنتاجية Office
جرِّب Kutools لـ Outlook الجديد كليًّا مع 100+ ميزة رائعة!انقر للتنزيل الآن!
📧أتمتة البريد الإلكتروني: الرد التلقائي (متوفر لبروتوكولي POP وIMAP) / جدولة إرسال رسائل البريد الإلكتروني / نسخة تلقائية/مخفية وفق القواعد عند إرسال البريد الإلكتروني / التحويل التلقائي (قاعدة متقدمة) / إضافة التحيّة تلقائيًّا / تقسيم رسائل البريد الإلكتروني ذات المستلمين المتعددين تلقائيًّا إلى رسائل فردية...
📨إدارة البريد الإلكتروني: استدعاء البريد الإلكتروني / حظر رسائل الاحتيال حسب العناوين وغيرها / حذف الرسائل المكررة / البحث المتقدم / تنظيم المجلدات...
📁المرفقات الاحترافية: حفظ دفعة واحدة / فصل دفعة واحدة / ضغط دفعة واحدة / حفظ تلقائي / تفصيل تلقائي / ضغط تلقائي...
🌟سحر الواجهة: 😊إيموجيات أكثر جمالًا وروعة / إشعارك عند وصول رسائل بريد إلكتروني مهمة / تصغير Outlook بدلًا من إغلاقه...
👍عجائب النقرة الواحدة: الرد على الجميع مع المرفقات / الحماية من رسائل التصيد الاحتيالي / 🕘عرض منطقة الوقت الحالي للمرسل...
👩🏼🤝👩🏻جهات الاتصال والتقويم: إضافة جهات اتصال دفعةً واحدة من رسائل البريد الإلكتروني المحددة / تقسيم مجموعة جهات الاتصال إلى مجموعات فردية / إزالة تذكير عيد الميلاد...
استخدم Kutools باللغة التي تفضلها – يدعم الإنجليزية، الإسبانية، الألمانية، الفرنسية، الصينية، وأكثر من 40 لغة أخرى!
افتح Kutools لـ Outlook بنقرة واحدة فورًا! لا تنتظر، نزِّله الآن وحسِّن كفاءتك!


🚀 التنزيل بنقرة واحدة — احصل على جميع إضافات Office
موصى به بشدة: Kutools for Office (5 في 1)
نقرة واحدة لتنزيلخمسة برامج تثبيتدفعة واحدة —Kutools لـ Excel وOutlook وWord وPowerPointوOffice Tab Pro.انقر للتنزيل الآن!
- ✅سهولة النقرة الواحدة: نزِّل جميع حزم الإعداد الخمس دفعة واحدة!
- 🚀جاهز لأي مهمة في Office: ثبِّت الإضافات التي تحتاجها، متى احتجتَ إليها.
- 🧰متضمَّن: Kutools لـ Excel / Kutools لـ Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint