الرئيسية
» مكتب MS
»
كيفية إرسال بريد إلكتروني باستخدام VBA في Excel: 11 خطوة لبرنامج Outlook
كيفية إرسال بريد إلكتروني باستخدام VBA في Excel: 11 خطوة لبرنامج Outlook
يُمكنك استخدام VBA في Excel لإعداد بريد إلكتروني في Outlook يتضمن المُستلم، والموضوع، والرسالة، ومرفق المصنف. يستخدم هذا الدليل المكون من 11 خطوة Outlook الكلاسيكي لنظام Windows ، ويفتح الرسالة كمسودة لتتمكن من مراجعتها قبل الإرسال. تُصنّف Microsoft وحدات VBA البرمجية ونموذج كائنات Outlook على أنها غير مدعومة في Outlook الجديد، لذا لن يعمل هذا المثال القائم على COM مع Outlook الجديد أو Outlook في المتصفح.
قبل البدء، احفظ عملك وتأكد من تثبيت برنامج Outlook الكلاسيكي مع إعداد حساب بريد إلكتروني. يستخدم البرنامج الربط المتأخر، لذا لا تحتاج إلى إضافة مرجع مكتبة Outlook خاص بالإصدار.
إرسال بريد إلكتروني باستخدام لغة VBA في برنامج Excel في 11 خطوة
1. تأكد من توفر برنامج Outlook الكلاسيكي
افتح نسخة سطح المكتب من Outlook وتأكد من إمكانية إرسال الرسائل من خلال صندوق البريد. يتطلب هذا الماكرو Outlook الكلاسيكي لنظام Windows؛ إذ لا توفر علامة تبويب Outlook.com، أو Outlook على الويب، أو Outlook الجديد كائن أتمتة COM المستخدم هنا. راجع مقارنة ميزات Outlook الكلاسيكي والجديد من Microsoft .
الخطوة 1: استخدم إصدارات سطح المكتب لنظام التشغيل Windows من Excel و Outlook الكلاسيكي.
2. احفظ المصنف كملف يدعم وحدات الماكرو
في برنامج إكسل، اختر ملف > حفظ باسم ، ثم حدد مصنف إكسل الممكّن لوحدات الماكرو (*.xlsm) . لا يمكن لملف .xlsx العادي الاحتفاظ بشفرة VBA. احفظ المصنف في موقع يمكنك الوصول إليه وتذكر مساره.
الخطوة الثانية: اختر تنسيق .xlsm الذي يدعم وحدات الماكرو عند الحفظ.
3. افتح محرر Visual Basic
افتح المصنف في تطبيق Excel على سطح المكتب، ثم اضغط على Alt+F11 . في مستكشف المشاريع، ابحث عن المشروع الذي يتطابق اسمه مع اسم مصنفك. إذا كان المحرر مخفيًا، فاضغط على Ctrl+R لإظهار مستكشف المشاريع.
الخطوة 3: يظهر مشروع المصنف في محرر Visual Basic.
4. أدخل وحدة نمطية قياسية
في محرر Visual Basic، حدد مشروع المصنف، ثم اختر إدراج > وحدة نمطية ، واستخدم جزء التعليمات البرمجية الجديد. تُعد الوحدة النمطية القياسية مكانًا مناسبًا لماكرو تقوم بتشغيله عند الحاجة.
الخطوة الرابعة: أدخل وحدة نمطية قياسية للماكرو.
5. أضف ماكرو إنشاء المسودة
ألصق هذا الإجراء في الوحدة النمطية. يتحقق من حفظ المصنف، ويتحقق من مسار المرفق، وينشئ رسالة Outlook، ويعرضها دون إرسالها.
الخطوة 5: أضف الإجراء إلى الوحدة النمطية الجديدة.
Option Explicit
Sub CreateOutlookDraft()
Dim olApp As Object
Dim olMail As Object
Dim attachmentPath As String
If Len(ThisWorkbook.Path) = 0 Then
MsgBox "Save the workbook before creating the email.", vbExclamation
Exit Sub
End If
attachmentPath = ThisWorkbook.FullName
If Len(Dir$(attachmentPath)) = 0 Then
MsgBox "Workbook attachment not found: " & attachmentPath, vbExclamation
Exit Sub
End If
On Error Resume Next
Set olApp = GetObject(, "Outlook.Application")
If olApp Is Nothing Then
Set olApp = CreateObject("Outlook.Application")
End If
On Error GoTo 0
If olApp Is Nothing Then
MsgBox "Classic Outlook could not be opened.", vbExclamation
Exit Sub
End If
Set olMail = olApp.CreateItem(0)
With olMail
.To = "recipient@example.com"
.CC = ""
.Subject = "Monthly report"
.Body = "Hi," & vbCrLf & vbCrLf & _
"Please review the attached monthly report." & _
vbCrLf & vbCrLf & "Thanks,"
.Attachments.Add attachmentPath
.Display
End With
Set olMail = Nothing
Set olApp = Nothing
End Sub
غيّر recipient@example.comإلى المستلم المقصود. أضف العناوين .CCإذا لزم الأمر، ثم عدّل .Subjectالنص في .Body. احتفظ بعلامات الاقتباس حول قيم النص واستخدم &لربط الأسطر vbCrLf. يستخدم المثال رسالة نصية عادية؛ ولا يتطلب تنسيق HTML.
الخطوة 6: استبدل المستلم النموذجي؛ عدّل سطر الموضوع وسطر الرسالة في نفس الإجراء.
7. اختر المرفق
كما هو مكتوب، ThisWorkbook.FullNameيتم إرفاق المصنف المحفوظ الذي يدعم وحدات الماكرو. إذا كنت ترغب في إرفاق تقرير منفصل، فاستبدل هذا التعيين بمسار الملف الكامل، على سبيل المثال "C:\Reports\MonthlyReport.xlsx". تأكد من وجود الملف وإمكانية الوصول إليه قبل تشغيل الماكرو. تقوم هذه Attachments.Addالطريقة بإرفاق ملف بالرسالة.
الخطوة 7: تأكد من أن مسار المرفق يشير إلى ملف موجود.
8. احفظ الماكرو
اضغط على Ctrl+S في المحرر أو عد إلى Excel واحفظ المصنف. احتفظ بصيغة .xlsm؛ لأن الحفظ بصيغة .xlsx سيؤدي إلى حذف مشروع VBA. خزّن الملف في مكان موثوق، ولا تُفعّل وحدات الماكرو في مصنف من مصدر غير معروف.
الخطوة 8: احفظ المصنف مع الاحتفاظ بامتداد .xlsm.
9. قم بتشغيل الإجراء
انقر داخل الملف CreateOutlookDraftواضغط على F5 ، أو استخدم أمر "تشغيل" في المحرر. إذا حظر برنامج Excel الماكرو، فاتبع سياسة مؤسستك. تشير مايكروسوفت إلى أن Office يحظر الماكرو في الملفات التي تم تحديدها على أنها واردة من الإنترنت افتراضيًا؛ لذا يُرجى مراجعة إرشادات أمان الماكرو بدلاً من تعطيل الحماية بشكل عام.
الخطوة 9: قم بتشغيل الماكرو من محرر Visual Basic.
10. راجع المسودة وأرسلها بنفسك
يجب أن يفتح برنامج Outlook رسالةً تحتوي على العنوان والموضوع والنص ومرفق المصنف مُعبأً مسبقًا. تحقق من كل مُستلم وافتح المرفق إن وُجد. انقر على زر "إرسال" في Outlook فقط بعد مراجعة المسودة. يستخدم البرنامج عمدًا فاصلة .Display(، وليس .Send،) لمنع إرسال الملفات القديمة أو التي تحتوي على أخطاء إملائية تلقائيًا عبر البريد الإلكتروني.
الخطوة 10: مراجعة مسودة برنامج Outlook وملف العمل المرفق.لا ترسل إلا بعد تأكيد تفاصيل الرسالة.
11. إصلاح المشاكل الشائعة
"لا يمكن لمكون ActiveX إنشاء كائن" أو Outlook غير متوفر: تأكد من تثبيت Outlook الكلاسيكي لنظام Windows وتكوينه. لا يوفر Outlook الجديد وOutlook عبر المتصفح نموذج كائنات Outlook المطلوب.
لن يعمل الماكرو: تأكد من أن ملف العمل بصيغة .xlsm، وتحقق من إشعار الأمان في برنامج Excel. لا تُفعّل جميع وحدات الماكرو لتجاوز التحذير؛ ثق فقط بالملفات والناشرين الذين تتعرف عليهم.
المرفق مفقود: احفظ المصنف أولاً أو صحّح المسار الكامل للتقرير المنفصل. تأكد من أن الملف ليس على محرك أقراص غير متاح.
هذه آلية عمل مخصصة للرسائل التي تراجعها وترسلها في برنامج Outlook الكلاسيكي. أما بالنسبة لرسائل البريد الإلكتروني التجارية المتكررة أو غير المراقبة، فاستخدم خدمة أتمتة معتمدة من المؤسسة، وتحقق من المستلمين والمرفقات والأذونات بشكل منفصل.
إذا قام برنامج Office بحظر وحدة ماكرو، فاتبع إرشادات الأمان الخاصة بشركة Microsoft وسياسة مؤسستك.