ارسال ایمیل از اکسل با استفاده از اسکریپت های VBA
برای ارسال ایمیل از مایکروسافت اکسل فقط به چند اسکریپت ساده نیاز دارید. این قابلیت را به صفحات گسترده خود اضافه کنید و واقعاً می توانید یک ویژگی عالی در اکسل به دست آورید.
چرا ایمیل را از اکسل ارسال می کنید؟
دلایل زیادی وجود دارد که ممکن است بخواهید از داخل Microsoft Excel ایمیل بفرستید.
شاید شما کارمندانی داشته باشید که اسناد یا صفحات گسترده را بصورت هفتگی به روز می کنند و می خواهید اعلان ایمیل را از زمان انجام این به روز رسانی دریافت کنید. یا ممکن است شما صفحه گسترده ای از مخاطبین داشته باشید و می خواهید یک ایمیل برای همه آنها به طور همزمان ارسال کنید.
احتمالاً شما در حال فکر کردن هستید که نوشتن یک ایمیل ارسال شده از اکسل پیچیده است. اصلاً اینطور نیست.
در این مقاله از ویژگی هایی استفاده می شود که مدت زمان طولانی در Excel VBA در دسترس است ، Collaboration Data Objects (CDO)
CDO یک جزء پیام رسانی است که از نسل های اولیه سیستم عامل در ویندوز استفاده می شود. این قبلاً CDONTS نامیده می شد و سپس با ظهور ویندوز ۲۰۰۰ و XP ، جایگزین “CDO for Windows 2000” شد. این مؤلفه از قبل در نصب VBA شما در مایکروسافت ورد یا اکسل گنجانده شده است و آماده استفاده است.
با استفاده از این مؤلفه ، ارسال ایمیل از داخل محصولات ویندوز با VBA بسیار آسان است. در این مثال ، شما از اجزای CDO در اکسل برای ارسال ایمیلی استفاده می کنید که نتایج را از یک سلول خاص اکسل تحویل می دهد.
مرحله ۱ : یک ماکرو VBA ایجاد کنید
اولین قدم رفتن به تب Excel Developer است .
در داخل تب Developer ، روی گزینه Insert کلیک کنید و سپس command button را انتخاب کنید.
آن را با کلیک بر روی ماکرو در زبانه Developer ، به داخل ورقه بکشید و سپس یک ماکرو جدید برای آن ایجاد کنید .
با کلیک بر روی دکمه Create ، ویرایشگر VBA را باز می کنید.
با حرکت به Tools > References در ویرایشگر ، مرجع را به کتابخانه CDO اضافه کنید .
لیست را پایین بیاورید تا زمانی که Microsoft CDO for Windows 2000 Library را پیدا کنید . کادر تأیید را علامت بزنید و OK را بزنید .
هنگامی که روی OK کلیک می کنید ، نام عملکردی را که می خواهید اسکریپت را درج کنید ، یادداشت کنید. بعداً بهش احتیاج دارید.
مرحله ۲: زمینه های “From” و “To” را در CDO تنظیم کنید
برای انجام این کار ، ابتدا باید فیلد های نامه را ایجاد کرده و کلیه زمینه های لازم برای ارسال ایمیل را تنظیم کنید.
به خاطر داشته باشید که در حالی که بسیاری از زمینه ها اختیاری هستند ، زمینه های From و To لازم است.
Dim CDO_Mail As Object Dim CDO_Config As Object Dim SMTP_Config As Variant Dim strSubject As String Dim strFrom As String Dim strTo As String Dim strCc As String Dim strBcc As String Dim strBody As String strSubject = "Results from Excel Spreadsheet" strFrom = "rdube02@gmail.com" strTo = "rdube02@gmail.com" strCc = "" strBcc = "" strBody = "The total results for this quarter are: " & Str(Sheet1.Cells(2, 1))
نکته جالب در این مورد این است که شما می توانید هر رشته ای را که می خواهید یک پیام کامل ایمیل بسازید ایجاد کنید و آن را به متغیر strBody اختصاص دهید .
با استفاده از رشتهای (&) دو کامپوننت پیام را جدا کنید تا اطلاعات هر برگه از اکسل دقیقا در پیام ایمیل قرار گیرد.
مرحله ۳: پیاده سازی CDO برای استفاده از SMTP خارجی
بخش بعدی کد جایی است که شما CDO را برای استفاده از هر سرور SMTP خارجی برای ارسال ایمیل پیکربندی می کنید.
این مثال یک راه اندازی غیر SSL از طریق Gmail است. CDO قادر به SSL است ، اما این خارج از محدوده این مقاله است.
Set CDO_Mail = CreateObject("CDO.Message") On Error GoTo Error_Handling Set CDO_Config = CreateObject("CDO.Configuration") CDO_Config.Load -1 Set SMTP_Config = CDO_Config.Fields With SMTP_Config .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "email@website.com" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Update End With With CDO_Mail Set .Configuration = CDO_Config End With
مرحله ۴: تنظیم CDO را نهایی کنید
اکنون که اتصال به سرور SMTP را برای ارسال ایمیل تنظیم کرده اید ، تنها کاری که باید انجام دهید اینست که زمینه های مناسب را برای CDO_Mail Object پر کنید و دستور Send را صادر کنید.
در اینجا نحوه انجام این کار آورده شده است:
CDO_Mail.Subject = strSubject CDO_Mail.From = strFrom CDO_Mail.To = strTo CDO_Mail.TextBody = strBody CDO_Mail.CC = strCc CDO_Mail.BCC = strBcc CDO_Mail.Send Error_Handling: If Err.Description <> "" Then MsgBox Err.Description
هیچ پنجره یا پیغام هشداری به صورت پاپآپ نمایش داده نمیشود. CDO به سادگی در کنار ایمیل قرار میگیرد و با استفاده از جزئیات ارتباط سرور SMTP، پیام را ارسال میکند.
CDO به راحتی ایمیل را اراسل کرده و از جزئیات اتصال سرور SMTP برای خاموش کردن پیام استفاده می کند. این ساده ترین راه برای وارد کردن ایمیل در اسکریپت های Microsoft Word یا Excel VBA است.
برای اتصال دکمه فرمان خود به این اسکریپت ، به ویرایشگر کد بروید و بر روی Sheet1 کلیک کنید تا کد VBA را برای آن کاربرگ مشاهده کنید.
نام عملکرد را در جایی که اسکریپت را در بالا جایگذاری کرده اید تایپ کنید.
این پیام به مانند پیام دریافت شده در صندوق ورودی من:
توجه : اگر خطایی دریافت کردید که می خواند انتقال در اتصال به سرور ناموفق بود ، حتماً نام کاربری ، رمز عبور ، سرور SMTP و شماره پورت را در خطوط کد ذکر شده در زیر با SMTP_Config وارد نکرده اید .
خودکار سازی ارسال ایمیل از اکسل
این یک ویژگی خوب است که بتوانید با لمس یک دکمه از اکسل ایمیل ارسال کنید. با این وجود ، ممکن است بخواهید به طور مرتب از این قابلیت ها استفاده کنید ، که در این صورت خودکار سازی فرایند معقول است .
برای انجام این کار ، باید تغییری در macro ایجاد کنید. به ویرایشگر ویژوال بیسیک بروید و کلیه کدی را که در کنار هم قرار داده اید کپی و جایگذاری کنید.
بعد ، ThisWorkbook را از سلسله مراتب پروژه انتخاب کنید .
از میان دو قسمت کشویی در بالای پنجره کد ، Workbook را انتخاب کرده و از پایین کشویی Methods را باز کنید .
اسکریپت ایمیل را در بالا در () Private Sub Workbook_Open بچسبانید .
این کار هر زمان که پرونده اکسل را باز کنید ، ماکرو را اجرا می کند.
بعد ، Task Scheduler را باز کنید .
شما می خواهید از این ابزار استفاده کنید تا از ویندوز بخواهید به طور خودکار صفحه گسترده را در فواصل منظم باز کند ، در این مرحله ماکرو با ارسال ایمیل به ماکرو شروع می شود.
Create Basic Task… را از منوی Action انتخاب کنید و تا زمانی که به صفحه Action دسترسی پیدا کنید ، مراحل را ادامه دهید.
Start a program را انتخاب کرده و روی Next کلیک کنید .
با استفاده از دکمه Browse ، مکان Microsoft Excel را در رایانه خود پیدا کنید ، یا مسیر را در قسمت Program/script کپی و Paste کنید .
سپس ، مسیر سند Microsoft Excel خود را در قسمت Add argument ها وارد کنید .
مراحل را کامل کنید و برنامه زمانبندی شما در محل خواهد بود.
توجه : ممکن است مجبور شوید تنظیمات Trust Center خود را تنظیم کنید تا از عملکرد صحیح ماکرو اطمینان حاصل شود.
برای این کار ، صفحه گسترده را باز کرده و به File > Options > Trust Center بروید .
از اینجا ، روی Trust Center Settings کلیک کنید ، و در صفحه بعدی radio dial را تنظیم کنید تا هرگز اطلاعاتی درباره محتوای مسدود شده نشان داده نشود .
- توصیه می شود : نحوه باز کردن و ویرایش فایل های اکسل در اندروید و آیفون
Microsoft Excel ابزاری فوق العاده قدرتمند است ، اما یادگیری چگونگی استفاده بیشتر از آن می تواند کمی ارعاب کننده باشد. اگر می خواهید واقعاً به نرم افزار تسلط پیدا کنید ، باید با VBA راحت باشید و این کار ساده ای است.
سلام
امکان داره در خصوص ارسال ایمیل بصورت خودکار، به همراه افزودن پیوست (Attachment) هم راهنمایی بفرمایید؟
بسیار ممنون