انتقل إلى المحتوى الرئيسي

برنامج Excel التعليمي - إرسال رسائل بريد إلكتروني من Excel

عادة ، نستخدم عملاء البريد الإلكتروني مثل Outlook و Gmail وما إلى ذلك لإرسال رسائل البريد الإلكتروني. ولكن ، يقوم العديد من الأشخاص بتخزين البيانات في مصنفات Excel ويحتاجون إلى إرسال بعض البيانات مع الآخرين أثناء العمل معها. لذلك ، يحتاجون إلى إرسال رسائل بريد إلكتروني مباشرة من مصنف Excel ، مما يوفر وقت تشغيل عميل البريد الإلكتروني. سيوضح لك هذا البرنامج التعليمي خطوة بخطوة كيفية إرسال رسائل البريد الإلكتروني من Excel في ظل ظروف مختلفة.

ملاحظات: قبل تطبيق الطرق التالية ، تحتاج إلى تكوين عميل بريد إلكتروني في Outlook على جهاز الكمبيوتر الخاص بك وتعيينه كعميل البريد الإلكتروني الافتراضي الخاص بك.

جدول المحتويات: [ يخفي ]

(انقر فوق أي عنوان في جدول المحتويات أدناه أو على اليمين للانتقال إلى الفصل المقابل.)

1. أساسيات إرسال رسائل البريد الإلكتروني من Excel

يقدم هذا القسم أساسيات إرسال رسائل البريد الإلكتروني من Excel.

1.1 إرسال رسائل بريد إلكتروني من Excel مع وظائف Excel المضمنة

إذا كنت تريد فقط إرسال رسائل بريد إلكتروني بسيطة من Excel ، بما في ذلك حقول "إلى" و "الموضوع" و "نسخة" و "النص الأساسي" فقط. يمكن أن تساعد الوظائف المضمنة في Excel.


1.1.1 إرسال بريد إلكتروني من Excel مع صيغة

كما هو موضح في الجدول أدناه ، لإرسال رسائل بريد إلكتروني مختلفة من Excel بناءً على الحقول المحددة ، يمكنك استخدام مراجع الخلايا للحقول المحددة لإنشاء صيغ ارتباط تشعبي مختلفة لإنجازها. بعد إنشاء الارتباطات التشعبية للبريد الإلكتروني ، يمكنك النقر فوق الارتباط التشعبي الذي تحتاجه لإرسال بريد إلكتروني تلقائيًا.

ملحوظة: إذا كان هناك أكثر من مستلم واحد في حقلي "إلى" أو "نسخة" ، فالرجاء فصلهم بفواصل منقوطة.

ينقسم هذا القسم إلى أربعة أجزاء لتوضيح خطوات إضافة عنوان البريد الإلكتروني ومستلم (مستلمي) نسخة وسطر الموضوع والنص الأساسي بشكل منفصل إلى صيغة الارتباط التشعبي. الرجاء القيام بما يلي.

بناء الجملة وحجج HYPERLINK الوظيفة هي على النحو التالي.

بناء الجملة

HYPERLINK(link_location, [friendly_name])

الحجج

Link_location (مطلوب): المسار واسم الملف للمستند المراد فتحه ؛
نصائح: في هذا البرنامج التعليمي ، يجب وضع جميع الحقول التي نحتاجها للبريد الإلكتروني ، مثل عنوان البريد الإلكتروني للمستلم ومستلم (مستلمي) نسخة وسطر الموضوع والنص الأساسي ، في الوسيطة الأولى "link_location".
اسم مألوف (اختياري): قيمة الانتقال التي يتم عرضها في الخلية.

1.1.1.1 أضف عنوان بريد إلكتروني إلى صيغة الارتباط التشعبي

هنا نستخدم "mailto:" كجزء من الصيغة لإضافة مستلم بريد إلكتروني. في هذا المثال ، يكون عنوان البريد الإلكتروني للمستلم الأول موجودًا في الخلية B2 ، لذلك نحتاج إلى إضافة "mailto:" والرجوع إليه في الخلية B2.

"mailto:" & B2

1. حدد خلية لعرض الارتباط التشعبي. في هذه الحالة ، أحدد الخلية F2.

2. ثم أدخل الصيغة التالية فيه.

=HYPERLINK("mailto:"&B2)

ملاحظات: إذا قمت بالضغط على أدخل مفتاح ، سيتم إنشاء ارتباط تشعبي كما هو موضح في لقطة الشاشة أدناه. عند النقر فوق الارتباط ، سيتم إنشاء بريد إلكتروني في Outlook وسيتم ملء عنوان البريد الإلكتروني للمستلم في الحقل "إلى" تلقائيًا.

تمت إضافة عنوان البريد الإلكتروني للمستلم الآن إلى صيغة الارتباط التشعبي. الرجاء متابعة الخطوات التالية لإضافة سطر الموضوع ومستلم (مستلمي) نسخة ونص أساسي حسب حاجتك.


1.1.1.2 إضافة مستلم (مستلمين) نسخة إلى صيغة الارتباط التشعبي

لإضافة مستلم (مستلمين) نسخة إلى وظيفة الارتباط التشعبي ، يرجى إضافة "؟ cc =" كجزء من الصيغة على النحو التالي.

"؟ cc =" & C2
حيث يحتوي C2 على عنوان البريد الإلكتروني لمستلم نسخة إلى.

يجب أن تكون الصيغة في الخلية F2 كما يلي:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2)


1.1.1.3 إضافة سطر الموضوع إلى صيغة الارتباط التشعبي

لإضافة سطر الموضوع إلى وظيفة الارتباط التشعبي ، يرجى إضافة & الموضوع = " كجزء من الصيغة على النحو التالي.

& subject = "& D2
حيث يحتوي C2 على موضوع البريد الإلكتروني.

يجب أن تبدو الصيغة في الخلية F2 الآن كما يلي:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)


1.1.1.4 إضافة نص أساسي مع فواصل أسطر إلى صيغة الارتباط التشعبي

الخطوة الأخيرة هي إضافة النص الأساسي إلى صيغة الارتباط التشعبي. كما ترى في المثال ، يتم فصل سطرين من النص في E2 بفاصل أسطر ، وتريد الاحتفاظ بفاصل الأسطر في نص البريد الإلكتروني. هل يتعرف Outlook على فاصل الأسطر في هذه الحالة؟ دعنا نتحقق من ذلك.

لإضافة النص الأساسي إلى صيغة الارتباط التشعبي ، تحتاج إلى إضافة "& الجسم =" كجزء من الصيغة على النحو التالي.

"& body =" & E2
حيث يحتوي E2 على النص الأساسي للبريد الإلكتروني.

يتم الآن عرض الصيغة في الخلية F2 على النحو التالي:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)

ملحوظة: إذا قمت بالضغط على أدخل مفتاح وانقر على الرابط. يمكنك أن ترى في البريد الإلكتروني الجديد أن المحتويات الموجودة في نص البريد الإلكتروني تُعرض في نفس السطر.

لعرض نص البريد الإلكتروني في سطور منفصلة ، تحتاج إلى تعديل محتوى الخلية عن طريق إضافة رمز حرف إرجاع الحرف ٪ 0 أ إلى النص حيث تريد إدراج فاصل أسطر. انظر لقطة الشاشة:


1.1.1.5 حدد النص الذي سيتم عرضه للارتباط التشعبي

في الخطوات المذكورة أعلاه ، انتهينا من وسيطة Link_location بحقول البريد الإلكتروني. هنا في هذا القسم ، سننهي الحجة التالية [friendly_name].

في هذه الحالة ، أريد أن تعرض خلية الارتباط التشعبي النص كـ "إرسال بالبريد الإلكتروني إلى xx"، حيث xx هو اسم المستلم في A2. لذلك ، يجب تغيير الصيغة في F2 إلى:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2)

اضغط على أدخل مفتاح للحصول على النتيجة.

حدد خلية الصيغة هذه واسحبها مقبض الملء التلقائي لأسفل لإنشاء ارتباطات تشعبية أخرى للبريد الإلكتروني. انظر لقطة الشاشة:


1.1.2 إرسال بريد إلكتروني من Excel باستخدام وظيفة الارتباط التشعبي

باستثناء استخدام صيغة الارتباط التشعبي أعلاه ، يمكنك إنشاء ارتباط تشعبي للبريد الإلكتروني يدويًا باستخدام ملف إدراج الارتباط التشعبي تعمل في Excel. سيوضح لك هذا القسم الخطوات.

1. انقر بزر الماوس الأيمن فوق بريد إلكتروني حيث تريد إدراج ارتباط تشعبي ، ثم حدد لينك من قائمة النقر بزر الماوس الأيمن.

2. في ظهرت أدخل ارتباط تشعبي مربع الحوار ، تحتاج إلى تكوين على النحو التالي.

شنومكس) حدد البريد الإلكتروني في الجزء الأيمن.
شنومكس) في نص للعرض مربع نص ، اكتب النص الذي تريد عرضه في الخلية ؛
نصائح: لا يمكنك استخدام مراجع الخلايا في مربع الحوار هذا ، لذا يجب عليك كتابة حقول البريد الإلكتروني يدويًا على النحو التالي.
شنومكس) في E-mail عنوان مربع نصي ، تحتاج إلى كتابة عناوين البريد الإلكتروني التالية.
mailto: عنوان البريد الإلكتروني
الرجاء استبدال النص "عنوان البريد الإلكتروني"بعنوان بريدك الإلكتروني الحقيقي. إذا كان لديك أكثر من عنوان بريد إلكتروني ، فافصل بينها بفاصلة منقوطة.
شنومكس) في الموضوع مربع نصي ، يمكنك تحديد موضوع بريدك الإلكتروني ونص بريدك الإلكتروني هنا. يرجى التهيئة على النحو التالي:
موضوع البريد الإلكتروني والجسم = نص البريد الإلكتروني
في هذه الحالة ، أكتب البيع الشهري والجسم = مرحبًا ، تم استلام البريد الإلكتروني بنسبة٪ 0.
> حيث يكون الموضوع هو البيع الشهري ؛
و
> نص البريد الإلكتروني هو:
مرحبا،
رسالة الكترونية تلقتها. (٪ 0 أ هو رمز حرف إرجاع الحرف الذي يمكن التعرف عليه بواسطة Outlook)
شنومكس) انقر فوق OK زر لحفظ الارتباط التشعبي. انظر لقطة الشاشة:

عند النقر فوق الارتباط التشعبي ، سيتم إنشاء بريد إلكتروني في Outlook مع الحقول المحددة والموضوع والجسم كما هو موضح في لقطة الشاشة أدناه.

ملاحظة:

1) باستخدام هذه الطريقة ، كان عليك إنشاء ارتباطات تشعبية للبريد الإلكتروني يدويًا.
2) لا يمكنك إضافة حقل نسخة إلى رسائل البريد الإلكتروني بهذه الطريقة. لذلك ، إذا كنت بحاجة إلى حقل "نسخة إلى" ، فيرجى إضافته من نافذة البريد الإلكتروني الافتتاحية الجديدة.

1.2 إرسال بريد إلكتروني إلى عدة مستلمين في الخلايا باستخدام برنامج VBA النصي

في المثال أعلاه ، يمكنك مشاهدة عناوين بريد إلكتروني متعددة معروضة في خلية مفصولة بفواصل منقوطة. إذا كانت لديك قائمة بعناوين البريد الإلكتروني كما هو موضح في لقطة الشاشة أدناه وترغب في إرسال بريد إلكتروني أو بريد إلكتروني مستقل إلى كل منهم ، فإن رمز VBA التالي يمكن أن يقدم لك خدمة.


1.2.1 إرسال بريد إلكتروني إلى عدة مستلمين في الخلايا باستخدام برنامج VBA النصي

1. في ورقة العمل التي تحتوي على جميع عناوين البريد الإلكتروني التي تريد إرسال البريد الإلكتروني إليها. اضغط على قديم + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. في ال ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق إدراج > وحدة، ثم الصق الكود التالي في ملف وحدة (كود) نافذة.

كود فبا: أرسل بريدًا إلكترونيًا إلى قائمة عناوين البريد الإلكتروني

Sub sendmultiple()
'updateby Extendoffice 20220802
    Dim xOTApp As Object
    Dim xMItem As Object
    Dim xCell As Range
    Dim xRg As Range
    Dim xEmailAddr As String
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xOTApp = CreateObject("Outlook.Application")
    For Each xCell In xRg
        If xCell.Value Like "*@*" Then
            If xEmailAddr = "" Then
                xEmailAddr = xCell.Value
            Else
                xEmailAddr = xEmailAddr & ";" & xCell.Value
            End If
        End If
    Next
    Set xMItem = xOTApp.CreateItem(0)
    With xMItem
        .To = xEmailAddr
        .Subject = "Test"
        .Body = "Dear " _
                & vbNewLine & vbNewLine & _
                "This is a test email " & _
                "sending in Excel"
        .Display
    End With
End Sub

3. اضغط على F5 مفتاح لتشغيل التعليمات البرمجية و كوتولس ل إكسيل ينبثق مربع الحوار. حدد قائمة عناوين البريد الإلكتروني وانقر OK.

الملاحظات:

1) إذا كنت لا تريد ظهور مربع الحوار أعلاه وتريد تحديد نطاق عناوين البريد الإلكتروني في الرمز مباشرةً ، فيرجى استبدال هذا السطر:
تعيين xRg = Application.InputBox ("الرجاء تحديد قائمة العناوين:" ، "Kutools for Excel" ، xTxt ، ، ، ، ، ، 8)
مع
تعيين xRg = Range ("A2: A7")
2) يمكنك تحديد موضوع وجسم البريد الإلكتروني الخاص بك في الأسطر التالية:
.Subject = "اختبار"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) لإرسال البريد الإلكتروني مباشرةً دون فتح نافذة الرسالة الجديدة التالية ، يلزمك استبدال هذا السطر:
.عرض
مع
.إرسال

بعد تشغيل الرمز ، يتم عرض جميع عناوين البريد الإلكتروني في النطاق المحدد في الحقل "إلى" في نافذة الرسالة. انظر لقطة الشاشة:


1.2.2 إرسال رسائل البريد الإلكتروني بشكل منفصل إلى كل مستلم مدرج في الخلايا مع برنامج VBA النصي

يضيف الرمز أعلاه جميع عناوين البريد الإلكتروني في النطاق المحدد إلى الحقل "إلى" في نافذة الرسالة. إذا كنت ترغب في إرسال رسائل بريد إلكتروني إلى كل عنوان بريد إلكتروني مدرج في الخلايا بشكل منفصل دون السماح لهم برؤية عناوين البريد الإلكتروني لبعضهم البعض ، يمكنك تجربة البرنامج النصي التالي لـ VBA.

1. في ورقة العمل التي تحتوي على جميع عناوين البريد الإلكتروني التي تريد إرسال رسائل البريد الإلكتروني إليها. اضغط على قديم + F11 مفاتيح افتح نافذة Microsoft Visual Basic for Applications.

2. في ال ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق إدراج > وحدة، ثم قم بلصق التعليمة البرمجية التالية في نافذة الوحدة النمطية (الرمز).

كود فبا: أرسل رسائل بريد إلكتروني إلى كل عنوان بريد إلكتروني مدرج في الخلايا بشكل منفصل

Sub SendEmailToAddressInCells()
'Updated by Extendoffice 20220802
    Dim xRg As Range
    Dim xRgEach As Range
    Dim xRgVal As String
    Dim xAddress As String
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list", "KuTools For Excel", xAddress, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
    For Each xRgEach In xRg
        xRgVal = xRgEach.Value
        If xRgVal Like "?*@?*.?*" Then
            Set xMailOut = xOutApp.CreateItem(olMailItem)
            With xMailOut
                .To = xRgVal
                .Subject = "Test"
                .Body = "Dear " _
                      & vbNewLine & vbNewLine & _
                        "This is a test email " & _
                        "sending in Excel"
                .Display
                '.Send
            End With
        End If
    Next
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

3. ثم اضغط الأدوات > المراجع. في مجلة المراجع - VBAProject في مربع الحوار ، ابحث عن ملف مكتبة كائنات Microsoft Outlook 16.0 ثم انقر فوق OK زر لحفظ التغييرات.

4. اضغط على F5 مفتاح لتشغيل التعليمات البرمجية و كوتولس ل إكسيل ينبثق مربع الحوار. حدد قائمة عناوين البريد الإلكتروني وانقر حسنا.

الملاحظات:

1) إذا كنت لا تريد ظهور مربع الحوار أعلاه وتريد تحديد نطاق عناوين البريد الإلكتروني في الرمز مباشرةً ، فيرجى استبدال هذا السطر:
تعيين xRg = Application.InputBox ("الرجاء تحديد قائمة العناوين:" ، "Kutools for Excel" ، xTxt ، ، ، ، ، ، 8)
مع
تعيين xRg = Range ("A2: A7")
2) يمكنك تحديد موضوع وجسم البريد الإلكتروني الخاص بك في الأسطر التالية:
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) لإرسال البريد الإلكتروني مباشرةً دون فتح نوافذ الرسائل التالية ، يلزمك استبدال هذا السطر:
.عرض
مع
.إرسال

في هذا المثال ، هناك ستة عناوين بريد إلكتروني في النطاق المحدد ، لذلك سيتم إنشاء ستة نوافذ لرسائل Outlook تلقائيًا بعنوان بريد إلكتروني منفصل مدرج في الحقل "إلى" كما هو موضح في لقطة الشاشة أدناه.

5. أخيرًا ، انقر فوق أرسل زر لإرسال البريد الإلكتروني واحدًا تلو الآخر.


2. أدخل المرفقات أو توقيع Outlook في رسائل البريد الإلكتروني المرسلة من Excel (مع البرامج النصية لـ VBA)

سيوضح لك هذا القسم كيفية إدراج المرفقات أو التوقيع الافتراضي لبرنامج Outlook في رسائل البريد الإلكتروني المرسلة من Excel.

2.1 أدخل المرفقات في رسائل البريد الإلكتروني المرسلة من Excel

هنا نصف الحالات المختلفة لإدخال المرفقات ، ويمكنك اختيار الطريقة وفقًا لاحتياجاتك. في هذا القسم ، يمكنك التعرف على (انقر فوق أي من الروابط التالية للانتقال إلى الطريقة المقابلة):


2.1.1 إرسال ملف معين بالبريد الإلكتروني كمرفق

يمكنك تطبيق رمز VBA التالي لإرسال ملف أو أكثر بالبريد الإلكتروني في مجلد كمرفقات من Excel.

1. اضغط على قديم + F11 مفاتيح.

2. في الافتتاح ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق إدراج > وحدة. ثم الصق كود فبا التالي في نافذة الوحدة النمطية (كود).

رمز فبا: إرسال الملفات بالبريد الإلكتروني في مجلد كمرفقات من Excel

Sub EmailWithAttachments()
'Updated by Extendoffice 20220802
    Dim xStrFile As String
    Dim xFilePath As String
    Dim xFileDlg As FileDialog
    Dim xFileDlgItem As Variant
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
    If xFileDlg.Show = -1 Then
        With xMailOut
            .BodyFormat = olFormatRichText
            .To = ""
            .Subject = "test"
            .HTMLBody = "test"
            For Each xFileDlgItem In xFileDlg.SelectedItems
                .Attachments.Add xFileDlgItem
            Next xFileDlgItem
            .Display
        End With
    End If
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

ملاحظة:

1) في الخط إلى = ، يرجى استبدال مع عنوان البريد الإلكتروني الخاص بالمستلم الخاص بك ؛
2) قم بتغيير موضوع البريد الإلكتروني وجسم البريد الإلكتروني بشكل منفصل في السطر .Subject = "اختبار" و .HTMLBody = "اختبار";
3) يمكنك إضافة مستلمي "نسخة إلى" و "نسخة مخفية الوجهة" حسب حاجتك. ما عليك سوى إضافة السطرين التاليين أسفل السطر.إلى = .
.CC = "عنوان البريد الإلكتروني"
.BCC = "عنوان البريد الإلكتروني"

3. ثم اضغط الأدوات > المراجع. في مجلة المراجع - VBAProject في مربع الحوار ، ابحث عن ملف مكتبة كائنات Microsoft Outlook 16.0 ثم انقر فوق OK زر لحفظ التغييرات.

4. اضغط على F5 مفتاح لتشغيل الكود ، ثم أ تصفح نافذة منبثقة ، يرجى تحديد الملفات التي تريد إرفاقها في البريد الإلكتروني ، ثم النقر فوق OK.

ثم تنبثق نافذة رسالة. يمكنك رؤية الملفات المحددة معروضة كمرفقات في الحقل المرفقات.


2.1.2 أرسل ورقة العمل الحالية بالبريد الإلكتروني كمرفق

إذا كنت تريد إرسال ورقة العمل الحالية بالبريد الإلكتروني كمرفق من Excel ، فيمكنك تطبيق البرنامج النصي VBA في هذا القسم.

1. اضغط على قديم + F11 مفاتيح.

2. في الافتتاح ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق أدخل > وحدة. ثم الصق كود فبا التالي في ملف وحدة (كود) نافذة.

كود فبا: أرسل ورقة العمل الحالية بالبريد الإلكتروني كمرفق

Sub SendWorkSheet()
'Update by Extendoffice 20220802
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add Wb2.FullName
    .Display
    '.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub

الملاحظات:

1) في الخط.إلى = ، يرجى استبدال باستخدام عنوان البريد الإلكتروني الحقيقي للمستلم. إذا كنت بحاجة إلى أكثر من عنوان بريد إلكتروني ، فيرجى فصلها بفواصل منقوطة.
2) قم بتغيير موضوع البريد الإلكتروني وجسم البريد الإلكتروني بشكل منفصل في السطر .Subject = "ميزات kte" و .Body = "الرجاء مراجعة هذا المستند وقراءته.";
3) في السطرين التاليين:
.CC = "عنوان البريد الإلكتروني"
.BCC = "عنوان البريد الإلكتروني"
إذا كنت تريد إضافة مستلمي "نسخة إلى" و "نسخة مخفية الوجهة" ، فاستبدل النص "عنوان البريد الإلكتروني"في سطور عناوين البريد الإلكتروني التي تحتاجها.
إذا لم تكن بحاجة إلى مستلمي cc و bcc ، فما عليك سوى إضافة علامة اقتباس أحادية ' قبل كل سطر.

3. اضغط على F5 مفتاح لتشغيل التعليمات البرمجية ، ثم يتم حفظ ورقة العمل الحالية كمصنف Excel ويتم إدراجها تلقائيًا في نافذة رسالة كمرفق. انظر لقطة الشاشة:

ملحوظة: المصنف المرفق الذي يحتوي على ورقة العمل الحالية فقط له نفس اسم المصنف الأصلي. ويتم إضافة الوقت الذي تقوم فيه بتشغيل التعليمات البرمجية إلى اسم المصنف أيضًا.


2.1.3 أرسل المصنف الحالي بالبريد الإلكتروني كمرفق

بعد تعلم رمز VBA لإرسال ورقة العمل الحالية بالبريد الإلكتروني كمرفق من Excel ، نقدم هنا برنامج نصي VBA آخر لمساعدتك في إرسال المصنف بأكمله بالبريد الإلكتروني كمرفق. الرجاء القيام بما يلي.

1. اضغط على قديم + F11 مفاتيح.

2. في الافتتاح ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق إدراج > وحدة. ثم الصق كود فبا التالي في نافذة الوحدة النمطية (كود).

كود فبا: أرسل المصنف الحالي بالبريد الإلكتروني كمرفق من إكسيل

Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

الملاحظات:

1) في الخط إلى = ، يرجى استبدال باستخدام عنوان البريد الإلكتروني الحقيقي للمستلم. إذا كنت بحاجة إلى أكثر من عنوان بريد إلكتروني ، فيرجى فصلها بفواصل منقوطة.
2) قم بتغيير موضوع البريد الإلكتروني وجسم البريد الإلكتروني بشكل منفصل في السطر .Subject = "ميزات kte" و .Body = "الرجاء مراجعة هذا المستند وقراءته.";
3) في السطرين التاليين:
.CC = "عنوان البريد الإلكتروني"
.BCC = "عنوان البريد الإلكتروني"
إذا كنت تريد إضافة مستلمي "نسخة إلى" و "نسخة مخفية الوجهة" ، فاستبدل النص "عنوان البريد الإلكتروني"في سطور عناوين البريد الإلكتروني التي تحتاجها.
إذا لم تكن بحاجة إلى مستلمي cc و bcc ، فما عليك سوى إضافة علامة اقتباس أحادية ' قبل كل سطر.

3. اضغط على F5 مفتاح لتشغيل التعليمات البرمجية ، ثم يتم إدراج المصنف الحالي في نافذة رسالة كمرفق تلقائيًا. انظر لقطة الشاشة:


2.1.4 أرسل المصنف بأكمله بالبريد الإلكتروني كمرفق PDF

بالنسبة لمعظم الأشخاص ، يميلون إلى حفظ مصنف Excel كملف PDF ثم إرساله كمرفق للآخرين. في هذا القسم ، سأوضح لك طريقة لإرسال رسائل البريد الإلكتروني مباشرةً من Excel باستخدام المصنف المفتوح الحالي كمرفق PDF دون الحاجة إلى حفظ المصنف يدويًا كملف PDF.

1. اضغط على قديم + F11 مفاتيح.

2. في الافتتاح ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق إدراج > وحدة. ثم الصق كود فبا التالي في نافذة الوحدة النمطية (كود).

كود فبا: أرسل المصنف بأكمله بالبريد الإلكتروني كمرفق PDF

Sub SendWorkBookAsPDF()
'Update 20220803
Dim Wb As Workbook
Dim FilePath As String
Dim FileName As String
Dim xOutApp As Object
Dim xOutMail As Object
On Error Resume Next

Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"
FilePath = Environ$("temp") & "\" & FileName

Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
    FilePath, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    False

Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
       .To = ""
       .CC = "Email Address"
       .BCC = "Email Address"
       .Subject = "test"
       .Body = "test"
       .Attachments.Add FilePath
       .Display   'or use .Send
   End With
Kill FilePath
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub

الملاحظات:

1) في الخط إلى = ، يرجى استبدال باستخدام عنوان البريد الإلكتروني الحقيقي للمستلم. إذا كنت بحاجة إلى أكثر من عنوان بريد إلكتروني ، فيرجى فصلها بفواصل منقوطة.
2) قم بتغيير موضوع البريد الإلكتروني وجسم البريد الإلكتروني بشكل منفصل في السطر .Subject = "اختبار" و .Body = "اختبار";
3) في السطرين التاليين:
.CC = "عنوان البريد الإلكتروني"
.BCC = "عنوان البريد الإلكتروني"
إذا كنت تريد إضافة مستلمي "نسخة إلى" و "نسخة مخفية الوجهة" ، فاستبدل النص "البريد الإلكتروني"في سطور عناوين البريد الإلكتروني التي تحتاجها.
إذا لم تكن بحاجة إلى مستلمي cc و bcc ، فما عليك سوى إضافة علامة اقتباس أحادية ' قبل كل سطر.
4) سيكون اسم ملف PDF هو نفسه اسم المصنف الأصلي. وسيتم أيضًا إضافة الوقت الذي تقوم فيه بتشغيل التعليمات البرمجية إلى اسم المصنف أيضًا. إذا لم تكن بحاجة إلى إضافة الطابع الزمني إلى اسم الملف ، فيرجى إزالته & تنسيق (الآن ، "dd-mmm-yy h-mm-ss") من السطر التالي.
FileName = يسار (Wb.Name، (InStrRev (Wb.Name، "."، -1، vbTextCompare) - 1)) & تنسيق (الآن ، "dd-mmm-yy h-mm-ss") & ".pdf "

3. اضغط على F5 مفتاح لتشغيل الكود. ثم يتم إدراج المصنف الحالي تلقائيًا في نافذة رسالة جديدة كمرفق ملف PDF. انظر لقطة الشاشة:


2.1.5 أرسل ورقة العمل الحالية بالبريد الإلكتروني كمرفق PDF

على سبيل المثال ، يوجد مصنف باسم "المبيعات الشهرية" ، وقد انتهيت من جدول تقرير المبيعات في ورقة عمل تسمى "تقرير المبيعات" وتريد إرسال ورقة العمل هذه كملف PDF إلى زملائك. يمكن أن يقدم لك رمز VBA التالي خدمة.

1. اضغط على قديم + F11 مفاتيح.

2. في الافتتاح ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق أدخل > وحدة. ثم الصق كود فبا التالي في نافذة الوحدة النمطية (كود).

كود فبا: أرسل ورقة العمل الحالية بالبريد الإلكتروني كمرفق PDF

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .Body = "test"
    .Attachments.Add FileName
    .Display
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

الملاحظات:

1) في الخط إلى = ، يرجى استبدال باستخدام عنوان البريد الإلكتروني الحقيقي للمستلم. إذا كنت بحاجة إلى أكثر من عنوان بريد إلكتروني ، فيرجى فصلها بفواصل منقوطة.
2) قم بتغيير موضوع البريد الإلكتروني وجسم البريد الإلكتروني بشكل منفصل في السطر .Subject = "اختبار" و .Body = "اختبار";
3) في السطرين التاليين:
.CC = "عنوان البريد الإلكتروني"
.BCC = "عنوان البريد الإلكتروني"
إذا كنت تريد إضافة مستلمي "نسخة إلى" و "نسخة مخفية الوجهة" ، فاستبدل النص "البريد الإلكتروني"في سطور عناوين البريد الإلكتروني التي تحتاجها.
إذا لم تكن بحاجة إلى مستلمي cc و bcc ، فما عليك سوى إضافة علامة اقتباس أحادية ' قبل كل سطر.
4) سيكون اسم ملف PDF كما يلي: اسم المصنف الأصلي - اسم ورقة العمل الأصلية. في هذه الحالة ، سيكون اسم ملف PDF هو تقرير مبيعات_المبيعات الشهرية.

3. اضغط على F5 مفتاح لتشغيل الكود. ثم يتم إدراج ورقة العمل الحالية تلقائيًا في نافذة رسالة جديدة كمرفق ملف PDF. انظر لقطة الشاشة:


2.2 أدخل توقيع Outlook في رسائل البريد الإلكتروني المرسلة من Excel

خذ الحالة أعلاه كمثال ، يمكنك تطبيق رمز VBA أعلاه لإرسال ورقة العمل الحالية كمرفق ملف PDF من Excel ، ولكن لا يمكن إضافة توقيع Outlook إلى نافذة الرسالة. للاحتفاظ بتوقيع Outlook الافتراضي في البريد الإلكتروني المرسل من Excel ، ستساعدك الطريقة التالية.

يتم سرد اثنين من رموز VBA أدناه.

التعليمات البرمجية لـ VBA 1: تساعد التعليمات البرمجية في الاحتفاظ بتوقيع Outlook.

كود فبا 2: يساعد الكود في إرسال ورقة العمل الحالية بالبريد الإلكتروني كمرفق PDF.

كود VBA 1: احتفظ بتوقيع Outlook

.HTMLBody = "Email body" & "
" & .HTMLBody

كود فبا 2: أرسل ورقة العمل الحالية بالبريد الإلكتروني كمرفق PDF

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .Body = "test"
    .Attachments.Add FileName
    .Display
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

1. عادة ، تحتاج إلى الضغط على قديم + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. في ال ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق إدراج > وحدة. ثم الصق رمز فبا 2 أعلاه في نافذة الوحدة النمطية (الرمز).

3. للاحتفاظ بالتوقيع الافتراضي لبرنامج Outlook في البريد الإلكتروني المرسل من Excel ، تحتاج إلى تعديل رمز VBA 2 على النحو التالي:

1) استبدل ملف .الجسم اصطف مع كود فبا 1;
2) حرك الخط .عرض تحت الخط مع OutlookMail (أو مع xMailOut في رموز أخرى). انظر لقطة الشاشة:

هذا هو الكود الكامل بعد التعديل.

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .Display
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .HTMLBody = "Email body" & "
" & .HTMLBody .Attachments.Add FileName '.Send End With Kill FileName Set OutlookMail = Nothing Set OutlookApp = Nothing End Sub

4. اضغط على F5 مفتاح لتشغيل الكود. ستحصل بعد ذلك على نافذة رسالة جديدة مع إرفاق ورقة العمل الحالية كملف PDF ، بينما سيتم إدراج توقيع Outlook الافتراضي في نهاية نص البريد الإلكتروني تلقائيًا.


3. إرسال رسائل البريد الإلكتروني تلقائيًا من Excel عند استيفاء شرط (مع نصوص VBA النصية)

في الأمثلة أعلاه ، تحتاج إلى تشغيل الكود يدويًا لتحقيق تسليم البريد الإلكتروني. إذا كنت ترغب في تشغيل الرمز تلقائيًا عند استيفاء شرط معين ، مثل عندما تصل الخلية إلى قيمة معينة ، وعندما تتغير قيمة الخلية ، وعندما يصل التاريخ ، وما إلى ذلك ، فسيتم إرسال البريد الإلكتروني تلقائيًا. يسرد هذا القسم الشروط التي بحث عنها مستخدمو Excel غالبًا في Google لمساعدتك في إرسال رسائل البريد الإلكتروني تلقائيًا من Excel عند استيفاء شرط معين.

3.1 إرسال بريد إلكتروني تلقائيًا عندما تصل الخلية إلى قيمة معينة

كما هو موضح في لقطة الشاشة أدناه ، افترض أن لديك جدول مبيعات يحتوي على خلية D6 تحتوي على إجمالي المبيعات. تريد إرسال بريد إلكتروني تلقائيًا إلى رئيسك في العمل بناءً على إجمالي المبيعات ، على سبيل المثال ، إنشاء أو إرسال بريد إلكتروني تلقائيًا عندما يتجاوز إجمالي المبيعات 10000 ولكن إذا كان إجمالي المبيعات يساوي 10000 أو أقل ، فلن يتم اتخاذ أي إجراء.

1. في ورقة العمل التي تحتوي على جدول البيع ، انقر بزر الماوس الأيمن فوق علامة تبويب الورقة وانقر عرض الكود من قائمة النقر بزر الماوس الأيمن.

2. في الافتتاح ميكروسوفت فيسوال باسيك للتطبيقات نافذة ، الصق رمز VBA التالي في ملف ورقة (كود) نافذة.

رمز فبا: إرسال بريد إلكتروني تلقائيًا عندما تصل الخلية إلى قيمة معينة في إكسيل

Dim xRg As Range
'Update by Extendoffice 20200803
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("D6"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10000 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
On Error Resume Next
With xOutMail
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub

Private Sub Worksheet_Calculate()
Dim xI As Integer
Dim xRg As Range
Set xRg = Range("D6")
On Error GoTo Err01
xI = Int(xRg.Value)
If xI > 10000 Then
Call Mail_small_Text_Outlook
End If
Err01:
End Sub

ملاحظة:

1) D6 هي الخلية التي سترسل بريدًا إلكترونيًا بناءً على قيمتها.
2) > 10000 هو الشرط ، مما يعني أنه سيتم إرسال بريد إلكتروني عندما تكون القيمة في D6 أكبر من 10000.
3) النطاق ("D6") في السطر التالي يعني أن نص البريد الإلكتروني سيرجع القيمة الموجودة في D6.
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
4) في الخط إلى = ، يرجى استبدال باستخدام عنوان البريد الإلكتروني الحقيقي للمستلم. إذا كنت بحاجة إلى أكثر من عنوان بريد إلكتروني ، فيرجى فصلها بفواصل منقوطة.
5) قم بتغيير موضوع البريد الإلكتروني في السطر .Subject = "اختبار".
6) في السطرين التاليين:
.CC = "عنوان البريد الإلكتروني"
.BCC = "عنوان البريد الإلكتروني"
إذا كنت تريد إضافة مستلمي "نسخة إلى" و "نسخة مخفية الوجهة" ، فاستبدل النص "البريد الإلكتروني"في سطور عناوين البريد الإلكتروني التي تحتاجها.
إذا لم تكن بحاجة إلى مستلمي cc و bcc ، فما عليك سوى إضافة علامة اقتباس أحادية ' قبل كل سطر.

من الآن فصاعدًا ، عندما تتجاوز القيمة في الخلية D6 10000 ، سيتم إنشاء بريد إلكتروني كما هو موضح في لقطة الشاشة أدناه.


3.2 إرسال بريد إلكتروني تلقائيًا عندما تتغير قيمة الخلية

كما هو موضح في لقطة الشاشة أدناه ، افترض أنك تلقيت مصنفًا يحتوي على مبيعات شهرية في أوراق عمل مختلفة وإجمالي المبيعات في ورقة عمل. تحتاج إلى التحقق من إجمالي المبيعات وإذا تم تعديل إجمالي المبيعات ، فأرسل المصنف مرة أخرى إلى المرسل وأخبر المرسل أنه تم تعديل الخلية.

1. في ورقة العمل التي تحتوي على جدول البيع ، انقر بزر الماوس الأيمن فوق علامة تبويب الورقة وانقر عرض الكود من قائمة النقر بزر الماوس الأيمن.

2. في الافتتاح ميكروسوفت فيسوال باسيك للتطبيقات في النافذة ، قم بلصق رمز فبا التالي في نافذة الورقة (الرمز).

رمز فبا: إرسال بريد إلكتروني تلقائيًا عندما تتغير قيمة خلية محددة

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220803
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xBoolean = False
Set xRg = Range("B14")

Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
Set xRgSel = xItsRG
xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
Set xRgSel = xDDs
xBoolean = True
ElseIf Not (xDs Is Nothing) Then
Set xRgSel = xDs
xBoolean = True
End If

ActiveWorkbook.Save
If xBoolean Then
Debug.Print xRgSel.Address

Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "The cell " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."

With xMailItem
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "Worksheet modified"
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

ملاحظة: في الكود ،

1) B14 في الرمز يعني أنه عندما تتغير قيمة الخلية B14 ، سترسل بريدًا إلكترونيًا.
2) في الخط إلى = ، يرجى استبدال باستخدام عنوان البريد الإلكتروني الحقيقي للمستلم. إذا كنت بحاجة إلى أكثر من عنوان بريد إلكتروني ، فيرجى فصلها بفواصل منقوطة.
3) قم بتغيير موضوع البريد الإلكتروني في السطر .Subject = "تم تعديل ورقة العمل".
4) في السطرين التاليين:
.CC = "عنوان البريد الإلكتروني"
.BCC = "عنوان البريد الإلكتروني"
إذا كنت تريد إضافة مستلمي "نسخة إلى" و "نسخة مخفية الوجهة" ، فاستبدل النص "البريد الإلكتروني"في سطور عناوين البريد الإلكتروني التي تحتاجها.
إذا لم تكن بحاجة إلى مستلمي cc و bcc ، فما عليك سوى إضافة علامة اقتباس أحادية ' قبل كل سطر.

من الآن فصاعدًا ، عندما تتغير القيمة في الخلية B14 ، سيتم إنشاء رسالة Outlook تلقائيًا كما هو موضح في لقطة الشاشة أدناه.


3.3 إرسال بريد إلكتروني تلقائيًا عند حفظ مصنف

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

1. اضغط على قديم + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. في هذه النافذة ، انقر نقرًا مزدوجًا ThisWorkbook في ال قسم المشاريع ، ثم الصق التعليمات البرمجية لـ VBA التالية في ملف ThisWorkbook (كود) نافذة.

رمز فبا: إرسال بريد إلكتروني تلقائيًا عند حفظ مصنف

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20220804
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = ""
        .CC = "Email address"
        .BCC = "Email address"
        .Subject = "The workbook has been updated"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

ملاحظة: في الكود ،

1) في الخط إلى = ، يرجى استبدال باستخدام عنوان البريد الإلكتروني الحقيقي للمستلم. إذا كنت بحاجة إلى أكثر من عنوان بريد إلكتروني ، فيرجى فصلها بفواصل منقوطة.
2) قم بتغيير موضوع البريد الإلكتروني والجسم بشكل منفصل في السطور .Subject = "تم تحديث المصنف" و .Body = "مرحبًا ،" & Chr (13) & Chr (13) & "تم تحديث الملف الآن.".
3) في السطرين التاليين:
.CC = "عنوان البريد الإلكتروني"
.BCC = "عنوان البريد الإلكتروني"
إذا كنت تريد إضافة مستلمي "نسخة إلى" و "نسخة مخفية الوجهة" ، فاستبدل النص "البريد الإلكتروني"في سطور عناوين البريد الإلكتروني التي تحتاجها.
إذا لم تكن بحاجة إلى مستلمي cc و bcc ، فما عليك سوى إضافة علامة اقتباس أحادية ' قبل كل سطر.

3. من الآن فصاعدًا ، عند حفظ المصنف بالضغط على CTRL + S مفاتيح أو النقر فوق حفظ الزر ، سيتم إنشاء بريد إلكتروني في Outlook تلقائيًا. يمكنك أن ترى أن المصنف الحالي مرفق كمرفق وأن الحقول يتم ملؤها بالمحتوى المحدد. انظر لقطة الشاشة:

نصائح: إذا كنت تستخدم هذا المصنف بشكل متكرر ، فنوصيك هنا بحفظ المصنف كملف مصنف Excel ممكن بماكرو لحفظ برنامج VBA النصي لاستخدامه في المستقبل. والخطوات هي كما يلي.

شنومكس) انقر قم بتقديم > حفظ باسم، ثم اختر مجلداً لحفظ الملف.
شنومكس) في حفظ باسم في مربع الحوار ، أعد تسمية الملف كما تريد في ملف اسم الملف مربع نص ، اختر مصنف Excel ممكن بماكرو في ال حفظ كنوع القائمة المنسدلة ، ثم انقر فوق الزر حفظ زر. انظر لقطة الشاشة:


3.4 إرسال بريد إلكتروني تلقائيًا في وقت محدد

لنفترض أنك بحاجة إلى إرسال بريد إلكتروني يحتوي على مصنف تعيين مهمة إلى شخص ما كل صباح جمعة في الساعة 9 صباحًا، وتريد القيام بذلك تلقائيًا في Excel دون الحاجة إلى تشغيل عميل البريد الإلكتروني يدويًا. سيوضح لك هذا القسم طريقة القيام بذلك.

1. اضغط على قديم + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. في ال ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق إدراج > وحدة. ثم الصق رمز فبا التالي في نافذة الوحدة النمطية.

كود فبا 1: أرسل المصنف الحالي بالبريد الإلكتروني كمرفق من Excel

Sub Timer()
    If Weekday(Date) = vbFriday Then
        SendWorkBook
        Application.OnTime TimeValue("09:00:00"), "Timer"
    Else
        Application.OnTime TimeValue("09:00:00"), "Timer"
    End If
End Sub

Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

3. في هذه النافذة ، انقر نقرًا مزدوجًا ThisWorkbook في ال قسم المشاريع ، ثم الصق التعليمات البرمجية لـ VBA التالية في ملف ThisWorkbook (كود) نافذة.

كود فبا 2: إرسال بريد إلكتروني تلقائيًا في وقت محدد

Private Sub Workbook_Open()
    Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub

ملاحظة:

1) في كود VBA 1 ، الجمعة في السطر التالي يعني أنه سيتم إرسال البريد الإلكتروني تلقائيًا كل يوم جمعة ؛
إذا كان يوم الأسبوع (التاريخ) = vbFriday ثم
2) في كود VBA 1 ورمز VBA 2 ، الوقت 09:00:00 يعني أنه سيتم إرسال البريد الإلكتروني في الساعة 9 صباحًا في يوم معين.
يمكنك تغيير اليوم والوقت حسب حاجتك.
3) عند تشغيل الكود ، سيتم إنشاء بريد إلكتروني. إذا كنت لا تريد أن تنبثق نافذة الرسالة وتحتاج إلى إرسالها مباشرة ، فيرجى إزالة السطر .عرض من كود VBA 1 ، وقم بإزالة اقتباس أحادية قبل الخط '.إرسال.

4. احفظ الرموز ثم احفظ المصنف كمصنف Excel ممكن بماكرو كما يلي.

شنومكس) انقر قم بتقديم > حفظ باسم، ثم اختر مجلداً لحفظ الملف.
شنومكس) في حفظ باسم في مربع الحوار ، أعد تسمية الملف كما تريد في ملف اسم الملف مربع نص ، اختر مصنف Excel ممكن بماكرو في ال حفظ كنوع القائمة المنسدلة ، ثم انقر فوق الزر حفظ زر. انظر لقطة الشاشة:

5. افتح المصنف المحفوظ الذي يدعم الماكرو ، ثم سيتم إنشاء بريد إلكتروني أو إرساله تلقائيًا عند وصول اليوم والوقت.


4. مواضيع إضافية

يجمع هذا القسم الموضوعات الأخرى التي قد تواجهها عند إرسال رسائل بريد إلكتروني من Excel.

4.1 إرسال مجموعة من الخلايا بالبريد الإلكتروني من Excel (باستخدام برنامج VBA النصي)

لنفترض وجود جدول مبيعات شهري في ورقة عمل Excel كما هو موضح في لقطة الشاشة أدناه ، وتحتاج إلى إرسال جدول المبيعات الشهري هذا إلى الآخرين كمحتوى أساسي لرسالة بريد إلكتروني أو كمرفق مباشرةً. نقدم لك هنا طريقتين لإنجاز ذلك.

4.1.1 أرسل نطاقًا بالبريد الإلكتروني كجزء من محتوى النص من Excel

يمكنك تشغيل التعليمات البرمجية لـ VBA التالية لإرسال نطاق من الخلايا كجزء من محتوى نص البريد الإلكتروني من Excel

1. اضغط على قديم + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. في ال ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق الأدوات > مراجع حسابات. ثم تحقق من ملف مكتبة كائنات Microsoft Outlook 16.0 مربع وانقر OK في ال المراجع - VBAProject صندوق المحادثة.

3. انقر إدراج > وحدة، ثم الصق التعليمات البرمجية لـ VBA التالية في ملف وحدة (كود) نافذة.

رمز فبا: أرسل نطاقًا من الخلايا كجزء من محتوى نص البريد الإلكتروني من Excel

Sub SendARangeofCells()
'Updated by Extendoffice 20220809
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xMailOut As Object
    Dim xOutApp As Object
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    With xMailOut
        .Subject = "test"
        .To = ""
        .CC = "Email address"
        .BCC = "Email address"
        .HTMLBody = RangetoHTML(xRg)
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

 ' The following VBA script is cited from this page:
 ' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function

ملاحظة: في الكود ،

1) في الخط إلى = ، يرجى استبدال باستخدام عنوان البريد الإلكتروني الحقيقي للمستلم. إذا كنت بحاجة إلى أكثر من عنوان بريد إلكتروني ، فيرجى فصلها بفواصل منقوطة.
2) في السطرين التاليين:
.CC = "عنوان البريد الإلكتروني"
.BCC = "عنوان البريد الإلكتروني"
إذا كنت تريد إضافة مستلمي "نسخة إلى" و "نسخة مخفية الوجهة" ، فاستبدل النص "البريد الإلكتروني"في سطور عناوين البريد الإلكتروني التي تحتاجها.
إذا لم تكن بحاجة إلى مستلمي cc و bcc ، فما عليك سوى إضافة علامة اقتباس أحادية ' قبل كل سطر.

4. اضغط على F5 مفتاح لتشغيل الكود. في ظهرت كوتولس ل إكسيل في مربع الحوار ، حدد نطاق الخلايا التي تريد إرسالها كجزء من محتوى نص البريد الإلكتروني ، ثم انقر فوق OK. انظر لقطة الشاشة:

ثم سيتم إنشاء بريد إلكتروني في Outlook تلقائيًا. يمكنك أن ترى أن النطاق الذي حددته في ورقة العمل قد تم إدراجه في نص البريد الإلكتروني. انظر لقطة الشاشة:


4.1.2 إرسال نطاق بالبريد الإلكتروني كمرفق من Excel

إذا كنت بحاجة إلى إرسال مجموعة من الخلايا في ورقة عمل بالبريد الإلكتروني كمرفق من Excel. يمكنك تجربة رمز VBA التالي.

1. اضغط على قديم + F11 مفاتيح.

2. في الافتتاح ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق إدراج > وحدة. ثم الصق كود فبا التالي في ملف وحدة (كود) نافذة.

رمز فبا: إرسال نطاق بالبريد الإلكتروني كمرفق من Excel

Sub SendRange()
'Update 20220809
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = ""
    .CC = "Email address"
    .BCC = "Email address"
    .Subject = "Monthly sales for 2021"
    .Body = "Hello, please check and read this document. "
    .Attachments.Add Wb2.FullName
    .Display
    '.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

ملاحظة:

1) في الخط إلى = ، يرجى استبدال باستخدام عنوان البريد الإلكتروني الحقيقي للمستلم. إذا كنت بحاجة إلى أكثر من عنوان بريد إلكتروني ، فيرجى فصلها بفواصل منقوطة.
2) قم بتغيير موضوع البريد الإلكتروني وجسم البريد الإلكتروني بشكل منفصل في السطر .Subject = "المبيعات الشهرية لعام 2021" و .Body = "مرحبًا ، يرجى مراجعة هذا المستند وقراءته.";
3) في السطرين التاليين:
.CC = "عنوان البريد الإلكتروني"
.BCC = "عنوان البريد الإلكتروني"
إذا كنت تريد إضافة مستلمي "نسخة إلى" و "نسخة مخفية الوجهة" ، فاستبدل النص "عنوان البريد الإلكتروني"في سطور عناوين البريد الإلكتروني التي تحتاجها.
إذا لم تكن بحاجة إلى مستلمي cc و bcc ، فما عليك سوى إضافة علامة اقتباس أحادية ' قبل كل سطر.

3. اضغط على F5 مفتاح لتشغيل الكود. في ظهرت كوتولس ل إكسيل في مربع الحوار ، حدد نطاق الخلايا التي تريد إرسالها كمرفق في رسالة بريد إلكتروني ، ثم انقر فوق OK. انظر لقطة الشاشة:

ثم سيتم إنشاء بريد إلكتروني في Outlook تلقائيًا. ويتم حفظ نطاق الخلايا الذي حددته في ورقة العمل كمصنف Excel وإرفاقه في نافذة الرسالة. انظر لقطة الشاشة:


4.2 إرسال رسائل البريد الإلكتروني عند النقر فوق زر في Excel

إذا كنت بحاجة إلى النقر فوق زر أمر لتشغيل ماكرو لإرسال بريد إلكتروني من Excel ، على سبيل المثال ، أرسل المصنف الحالي كمرفق للآخرين عن طريق النقر فوق زر أمر في ورقة العمل. يمكنك اتباع الخطوات على النحو التالي لإنجازها.

1. انقر المطور > إدراج > زر الأمر (عنصر تحكم ActiveX). ثم ارسم زر أمر في ورقة العمل.

نصائح: إذا كان لديك بالفعل زر أمر ، فتخط هذه الخطوة.

2. اضغط على قديم + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة او شباك. في النافذة ، انقر فوق إدراج > مودو، ثم الصق رمز VBA (الرمز المستخدم لإرسال المصنف الحالي بالبريد الإلكتروني كمرفق من Excel) في نافذة الوحدة النمطية (الرمز).

اضغط هنا للحصول على الرمز.

ملاحظات: هنا اسم الماكرو الذي قمت بإنشائه في الخطوة 2 هو إرسال مصنف.

3. اضغط على قديم + Q مفاتيح لإغلاق ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

4. الآن أنت بحاجة إلى تعيين الماكرو إلى زر الأمر. انقر بزر الماوس الأيمن فوق زر الأمر ، وحدد عرض الرمز من قائمة النقر بزر الماوس الأيمن.

5. ثم ميكروسوفت فيسوال باسيك للتطبيقات نافذة منبثقة ، يمكنك رؤية السطرين التاليين مدرجين في ملف ورقة (كود) نافذة.

Private Sub CommandButton1_Click()
End Sub

6. أدخل اسم الماكرو الموجود داخل الإجراء الفرعي لزر الأمر.

7. اضغط على قديم + Q مفاتيح لإغلاق محرر Visual Basic، ثم انقر المطور > وضع التصميم لإيقاف وضع التصميم.

يمكنك الآن النقر فوق زر الأمر لإرسال بريد إلكتروني مع المصنف الحالي كمرفق في البريد الإلكتروني.


4.3 إرسال رسائل بريد إلكتروني من حساب بريد إلكتروني محدد

عادةً ، عند بدء تشغيل بريد إلكتروني من Excel برمز VBA ، يكون حساب البريد الإلكتروني الخاص بالمرسل هو الحساب الافتراضي في Outlook. لنفترض أنك قمت بتكوين العديد من حسابات البريد الإلكتروني في Outlook الخاص بك وتريد استخدام حساب معين لإرسال رسائل البريد الإلكتروني من Excel بدلاً من استخدام الحساب الافتراضي. يمكن أن يساعد رمز VBA التالي.

الرموز التالية ضرورية في هذه الحالة.

كود فبا 1:

Dim OutlookMail As Outlook.MailItem

كود فبا 2:

For Each xAccount In OutlookApp.Session.Accounts
  If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next

كيفية استخدام كود فبا أعلاه؟

1) في الكود الخاص بك ، تحتاج إلى استبدال السطر مثل "تعتيم OutlookMail ككائن"برمز VBA 1 ؛
2) أضف رمز VBA 2 أسفل السطر "على خطأ استئناف التالي"في التعليمات البرمجية الخاصة بك. ثم حدد عنوان البريد الإلكتروني الذي ستستخدمه لإرسال البريد الإلكتروني في رمز VBA 2.

في هذا المثال ، سنقوم بتحديد حساب بريد إلكتروني معين لإرسال المصنف الحالي كمرفق من Excel. الرجاء القيام بما يلي.

1. اضغط على قديم + F11 مفاتيح. في ال ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق الأدوات > مراجع حسابات. ثم تحقق من ملف مكتبة كائنات Microsoft Outlook 16.0 مربع وانقر OK في ال المراجع - VBAProject صندوق المحادثة.

2. انقر إدراج > وحدة. ثم الصق كود فبا التالي في ملف وحدة (كود) نافذة.

رمز VBA: أرسل المصنف الحالي كمرفق بريد إلكتروني من Excel عبر حساب Outlook محدد

Sub SendWorkBook()
'Update by Extendoffice 20220809
Dim OutlookApp As Object
Dim OutlookMail As Outlook.MailItem 'important! Here can’t be declared as Object
Dim xAccount As Account
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
On Error Resume Next
'The following lines helps to specify a certian email account
For Each xAccount In OutlookApp.Session.Accounts
  If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next
'End
With OutlookMail
    .To = ""
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

3. اضغط على F5 مفتاح لتشغيل الكود. ثم تنبثق رسالة بريد إلكتروني في Outlook ، يمكنك أن ترى أن ملف من يتم ملء الحقل بحساب البريد الإلكتروني الذي حددته في الرمز.


4.4 إرسال بريد إلكتروني عند بلوغ التاريخ

إذا كنت بحاجة إلى إرسال بريد إلكتروني بناءً على تاريخ استحقاق محدد ، على سبيل المثال ، كما هو موضح في لقطة الشاشة أدناه ، فهناك جدول مشروع ، عندما يكون تاريخ الاستحقاق في النطاق E2: E7 مساويًا أو أقل من 7 أيام من اليوم (بافتراض أن التاريخ الحالي هو 2022/8/4)، سيتم إرسال بريد إلكتروني تلقائيًا إلى قادة المشروع المطابقين وإخطارهم بأن المشروع على وشك الانتهاء.

1. في ورقة العمل التي تحتوي على جدول المشروع ، انقر بزر الماوس الأيمن فوق علامة تبويب الورقة وانقر عرض الكود من قائمة النقر بزر الماوس الأيمن.

2. في الافتتاح ميكروسوفت فيسوال باسيك للتطبيقات نافذة ، الصق رمز VBA التالي في ملف ورقة (كود) نافذة.

كود فبا: أرسل رسالة بريد إلكتروني تلقائيًا عند استيفاء تاريخ الاستحقاق

Public Sub SendMailDueDate()
'Updated by Extendoffice 20220804
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Range("E2:E7") 'Please reference the due date column range
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Range("C2:C7") 'Please reference the email addresses column range
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Range("D2:D7") 'Please reference the remark column range (the remark used to notify project leaders of the expiration of the project)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.Count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "

" xMailBody = "" xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf xMailBody = xMailBody & "Remark : " & xRgText.Offset(i - 1).Value & vbCrLf xMailBody = xMailBody & "" Set xMailItem = xOutApp.CreateItem(0) With xMailItem .Subject = xMailSubject .To = xRgSendVal .CC = "Email address" .BCC = "Email address" .HTMLBody = xMailBody .Display '.Send End With Set xMailItem = Nothing End If End If Next Set xOutApp = Nothing End Sub

ملاحظة: في الكود ،

1) في الأسطر التالية ، E2: E7 يحتوي على تواريخ الاستحقاق التي سترسل رسائل البريد الإلكتروني بناءً عليها. C2: C7 يحتوي على عناوين البريد الإلكتروني التي سترسل إليها رسائل البريد الإلكتروني. و D2: D7 يحتوي على الملاحظات التي ستضيفها في نص البريد الإلكتروني لإعلام المستلمين بأن المشروع على وشك الانتهاء. يمكنك تغيير النطاقات حسب حاجتك.
تعيين xRgDate = النطاق ("E2: E7")
تعيين xRgSend = Range ("C2: C7")
تعيين xRgText = النطاق ("D2: D7")
2) يعني السطر التالي أن تاريخ الاستحقاق يجب أن يكون أكبر من يوم واحد ويساوي أو أقل من 1 أيام من اليوم. يمكنك تغييره كما تريد.
إذا كان CDate (xRgDateVal) - التاريخ <= 7 و CDate (xRgDateVal) - التاريخ> 0 ثم
3) في الخط إلى = ، يرجى استبدال باستخدام عنوان البريد الإلكتروني الحقيقي للمستلم. إذا كنت بحاجة إلى أكثر من عنوان بريد إلكتروني ، فيرجى فصلها بفواصل منقوطة.
4) قم بتغيير موضوع البريد الإلكتروني في السطر .Subject = "تم تعديل ورقة العمل".
5) في السطرين التاليين:
.CC = "عنوان البريد الإلكتروني"
.BCC = "عنوان البريد الإلكتروني"
إذا كنت تريد إضافة مستلمي "نسخة إلى" و "نسخة مخفية الوجهة" ، فاستبدل النص "البريد الإلكتروني"في سطور عناوين البريد الإلكتروني التي تحتاجها.
إذا لم تكن بحاجة إلى مستلمي cc و bcc ، فما عليك سوى إضافة علامة اقتباس أحادية ' قبل كل سطر.

3. اضغط على F5 مفتاح لتشغيل الكود. بعد ذلك ، إذا كان تاريخ انتهاء الصلاحية يطابق الشروط ، فسيتم إنشاء البريد الإلكتروني المقابل. في هذه الحالة ، سيتم إنشاء رسالتي بريد إلكتروني كما هو موضح في لقطة الشاشة أدناه.


5. أداة مفيدة لمساعدتك على إرسال رسائل البريد الإلكتروني بسهولة من Excel

إذا كنت مبتدئًا في VBA ، فقد لا يكون من السهل عليك التعامل مع الطرق المذكورة أعلاه. هنا نوصي كوتولس ل إكسيلالصورة إرسال رسائل البريد الإلكتروني ميزة ، مع هذه الميزة ، يمكنك بسهولة إرسال رسائل البريد الإلكتروني من Excel بعدة نقرات فقط. الرجاء القيام بما يلي.

قبل التطبيق كوتولس ل إكسيلالرجاء قم بتنزيله وتثبيته أولاً.

5.1 أنشئ بسهولة قائمة بريدية تتضمن حقول البريد الإلكتروني التي تحتاجها

قبل تطبيق ميزة إرسال رسائل البريد الإلكتروني ، تحتاج إلى إنشاء قائمة بريدية تحتوي على حقول البريد الإلكتروني التي تحتاجها. هنا يمكن أن تساعد ميزة إنشاء قائمة بريدية.

1. انقر كوتولس بلس > إنشاء قائمة بريدية.

2. في الافتتاح إنشاء قائمة بريدية نافذة ، تحتاج إلى تكوين على النحو التالي.

شنومكس) في أعمدة القائمة البريدية القسم ، تحقق من الحقول التي تحتاجها في بريدك الإلكتروني ؛
شنومكس) في إرفاق ملفات القسم ، تحقق من واحد أو أكثر من المرفقات التي قد تحتاجها ؛
2.3) تحديد مكان لوضع القائمة البريدية ؛
شنومكس) انقر فوق إنشاء زر. انظر لقطة الشاشة:

ثم يتم إنشاء نموذج لجدول قائمة بريدية كما هو موضح في الصورة أدناه.

3. الآن أنت بحاجة إلى استبدال البيانات الأصلية في العينة ببياناتك الميدانية.

الآن قمت بإنشاء جدول قائمة بريدية. يرجى المضي قدما لتطبيق إرسال رسائل البريد الإلكتروني ميزة لإرسال رسائل البريد الإلكتروني من Excel بناءً على الحقول التي قمت بإنشائها.

  إذا كنت ترغب في الحصول على نسخة تجريبية مجانية (30 يومًا) من هذه الأداة المساعدة ، الرجاء الضغط لتنزيلهثم انتقل لتطبيق العملية حسب الخطوات المذكورة أعلاه.


5.2 إرسال رسائل البريد الإلكتروني بسهولة بما في ذلك الحقول التي أنشأتها في القائمة البريدية

بعد إنشاء القائمة البريدية (انقر لمعرفة كيف) التي تحتوي على الحقول التي قد تحتاجها في رسائل البريد الإلكتروني الخاصة بك ، يمكنك الآن إرسال رسائل بريد إلكتروني من Excel مع هذه الحقول.

1. حدد القائمة البريدية بأكملها ، انقر فوق كوتولس بلس > إرسال رسائل البريد الإلكتروني.

2. في ال إرسال رسائل البريد الإلكتروني مربع الحوار ، يرجى إجراء التكوين التالي.

2.1) يتم ملء الحقول في مربع الحوار لكل حقل تلقائيًا بواسطة الحقول التي حددتها في القائمة البريدية ؛
نصائح: إذا لم تكن بحاجة إلى حقل معين في الوقت الحالي ، فاختر خيارًا فارغًا من القائمة المنسدلة.
2.2) إدراج عنصر نائب (اختياري): إذا كنت بحاجة إلى إدراج معلومات متغيرة في نص بريد إلكتروني.
على سبيل المثال ، قد تحتاج إلى إرسال بريد إلكتروني إلى عدة مستلمين مع اسم مخصص لكل منهم ، وتحتاج إلى وضع المؤشر في نص البريد الإلكتروني حيث تحتاج إلى إدراج العنصر النائب ، وحدد الحقل "هـ: الاسم الأول"(أو حقل اسم آخر في قائمة البريد الإلكتروني الخاصة بك) ، ثم انقر فوق إدراج نائب زر؛
عندما يتلقى المستلمون البريد الإلكتروني ، يظل نص البريد الإلكتروني كما هو ولكن الأسماء فريدة لكل منها.
2.3) يؤلف نص البريد الإلكتروني حسب حاجتك ؛
2.4) تأكد من أن ملف إرسال رسائل البريد الإلكتروني عبر Outlook المربع محدد ؛
شنومكس) انقر فوق أرسل زر. انظر لقطة الشاشة:

3. ثم أ كوتولس ل إكسيل ينبثق مربع الحوار لإخبارك بعدد رسائل البريد الإلكتروني المرسلة ، انقر فوق OK زر لإغلاق مربع الحوار هذا.

نصائح: يمكنك الذهاب الى المواد المرسلة مجلد في Outlook الخاص بك للتحقق من رسائل البريد الإلكتروني التي أرسلتها.


5.3 إرسال رسائل البريد الإلكتروني بسهولة باستخدام نص HTML (بما في ذلك الارتباط التشعبي والصورة وما إلى ذلك)

تتيح لك ميزة إرسال رسائل البريد الإلكتروني هذه إنشاء بريد إلكتروني بتنسيق html ، والذي يتضمن ارتباطًا تشعبيًا وصورة وأحجام خطوط مختلفة وألوان خطوط وما إلى ذلك.

بعد إنشاء قائمة بريدية تتضمن حقول البريد الإلكتروني التي تحتاجها,

عند تكوين مربع الحوار إرسال رسائل البريد الإلكتروني، يمكنك جعل محتوى الجسم ثريًا باستخدام الخيارات الموجودة على شريط الأدوات.

انظر اللقطة في الاسفل:


5.4 أدخل توقيع Outlook الافتراضي بسهولة عند إرسال رسائل البريد الإلكتروني

في الطريقة أعلاه ، أظهرنا رمز VBA لمساعدتك في إرسال رسائل البريد الإلكتروني مع توقيع Outlook الافتراضي. هنا مع ميزة إرسال رسائل البريد الإلكتروني ، تحتاج فقط إلى التحقق من أحد الخيارات ، ثم سيتم إدراج توقيع Outlook الافتراضي في رسائل البريد الإلكتروني التي أرسلتها من Excel.

بعد إنشاء قائمة بريدية تتضمن حقول البريد الإلكتروني التي تحتاجها,

متى تكوين مربع الحوار إرسال رسائل البريد الإلكتروني، تحتاج إلى النقر فوق مزيد من الخيارات > استخدم إعدادات توقيع Outlook.

ملاحظات: الرجاء التأكد من وجود علامة اختيار معروضة قبل خيار استخدام إعدادات توقيع Outlook.

عندما يتلقى المستلمون البريد الإلكتروني ، يمكنهم رؤية توقيع Outlook الافتراضي المعروض في نهاية نص البريد الإلكتروني.


5.5 إرسال رسائل البريد الإلكتروني بسهولة من حساب بريد إلكتروني محدد

لاستخدام حساب بريد إلكتروني معين لإرسال رسائل البريد الإلكتروني من Excel بدلاً من استخدام الحساب الافتراضي ، يمكن أن تساعد ميزة إرسال رسائل البريد الإلكتروني أيضًا في إنجازها بسهولة.

بعد إنشاء قائمة بريدية تتضمن حقول البريد الإلكتروني التي تحتاجها,

متى تكوين مربع الحوار إرسال رسائل البريد الإلكتروني، تحتاج إلى النقر فوق مزيد من الخيارات > ارسلت من، ثم انقر فوق حساب البريد الإلكتروني الذي تريد إرسال رسائل البريد الإلكتروني منه.

ملاحظات: بعد تحديد حساب البريد الإلكتروني ، سيتم عرض علامة اختيار قبله.

انقر هنا لمعرفة المزيد حول ميزة إرسال رسائل البريد الإلكتروني هذه.

  إذا كنت ترغب في الحصول على نسخة تجريبية مجانية (30 يومًا) من هذه الأداة المساعدة ، الرجاء الضغط لتنزيلهثم انتقل لتطبيق العملية حسب الخطوات المذكورة أعلاه.

في الختام ، يعد إرسال رسائل البريد الإلكتروني من Excel مفيدًا جدًا في عملنا اليومي. تتناول هذه المقالة موضوعات أكثر شمولاً لرسائل البريد الإلكتروني المرسلة من Excel ، إذا كانت هناك مواضيع أخرى أو حلول أسهل ، فيرجى ترك تعليق لإعلامي.

أفضل أدوات إنتاجية المكتب

🤖 مساعد Kutools AI: إحداث ثورة في تحليل البيانات على أساس: التنفيذ الذكي   |  إنشاء التعليمات البرمجية  |  إنشاء صيغ مخصصة  |  تحليل البيانات وإنشاء الرسوم البيانية  |  استدعاء وظائف Kutools...
الميزات الشعبية: البحث عن التكرارات أو تمييزها أو تحديدها   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |   جولة بدون صيغة 
سوبر بحث: معايير متعددة VLookup    VLookup ذات القيمة المتعددة  |   VLookup عبر أوراق متعددة   |   بحث غامض ....
قائمة منسدلة متقدمة: إنشاء القائمة المنسدلة بسرعة   |  القائمة المنسدلة التابعة   |  قائمة منسدلة متعددة التحديد ....
مدير العمود: إضافة عدد محدد من الأعمدة  |  نقل الأعمدة  |  تبديل حالة رؤية الأعمدة المخفية  |  مقارنة النطاقات والأعمدة 
الميزات المميزة: التركيز على الشبكة   |  عرض تصميم   |   شريط الفورمولا الكبير    مدير المصنفات والأوراق   |  مكتبة الموارد (النص السيارات)   |  منتقي التاريخ   |  اجمع أوراق العمل   |  تشفير/فك تشفير الخلايا    إرسال رسائل البريد الإلكتروني عن طريق القائمة   |  سوبر تصفية   |   مرشح خاص (تصفية غامق / مائل / يتوسطه خط ...) ...
أفضل 15 مجموعة أدوات12 نص الأدوات (إضافة نص, إزالة الأحرف، ...)   |   +50 رسم الأنواع (مخطط جانت، ...)   |   40+ عملي الصيغ (احسب العمر على أساس تاريخ الميلاد، ...)   |   19 إدخال الأدوات (أدخل رمز الاستجابة السريعة, إدراج صورة من المسار، ...)   |   12 تحويل الأدوات (أرقام إلى كلمات, نتيجة تحويل عملة، ...)   |   7 دمج وتقسيم الأدوات (الجمع بين الصفوف المتقدمة, تقسيم الخلايا، ...)   |   ... و اكثر

عزز مهاراتك في Excel باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت.  انقر هنا للحصول على الميزة التي تحتاجها أكثر...

الوصف


يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations