آموزش ارسال ایمیل از اکسل با استفاده از اسکریپت‌های ویژوال بیسیک

۲۸۸۱ بازدید
آخرین به‌روزرسانی: ۰۵ دی ۱۴۰۱
زمان مطالعه: ۴ دقیقه
آموزش ارسال ایمیل از اکسل با استفاده از اسکریپت‌های ویژوال بیسیک

استفاده از ایمیل‌ها به عنوان بخشی از هر برنامه، می‌تواند روشی جالب برای خودکارسازی وظایف مهم باشد و همچنین به میزان قابل توجهی ارزش و عملکرد هر برنامه یا اسکریپت را بالا ببرد.

شما در جاهای مختلفی می‌توانید از ارسال ایمیل استفاده کنید. اما اگر بخواهید از طریق محصولات بسته‌ی آفیس مایکروسافت مانند ورد و اکسل به صورت خودکار ایمیل ارسال کنید باید چه کاری انجام دهید؟

طبیعتا دلایل زیادی برای انجام چنین کاری وجود دارد. ممکن است کارمندانی داشته باشید که اسناد و صفحات گسترده را به صورت هفتگی به‌روزرسانی می‌کنند و بخواهید بعد از به روز رسانی ایمیل هشدار برای شما ارسال شود و حتی گزارشی از اطلاعات این برگه‌ها دریافت کنید. روش‌هایی وجود دارد که با استفاده از آنها می‌توانید از طریق اکسل به صورت خودکار ایمیل ارسال کنید اما هنوز (Collaboration Data Objects) یکی از بهترین گزینه‌هاست.

ارسال ایمیل از داخل اکسل

ممکن است فکر کنید اسکریپت‌نویسی برای ایمیل‌های خروجی از طریق اسکریپت ویژوال بیسیک اکسل خیلی پیچیده است. اما باید بگوییم هرگز این گونه نیست.

(CDO) یکی از کامپوننت‌های ارسال پیام است که در چندین نسل از سیستم عامل ویندوز استفاده می‌شود. این کامپوننت که با نام (CDONTS) شناخته می‌شد با انتشار ویندوز 2000 و ایکس‌پی به CDO تبدیل شد. این کامپوننت هنگام نصب ویژوال بیسیک در ورد و اکسل نصب می‌شود و می‌توانید از آن استفاده کنید.

ایجاد یک ماکرو ویژوال بیسیک

اولین گام این است که به تب (Excel Developer) بروید.

در تب (Developer) در باکس کنترل‌ها روی گزینه‌ی (Insert) کلیک کرده و سپس دکمه‌ی دستور (Command) را انتخاب کنید.

آن را به داخل برگه کشیده و یک ماکروی جدید ایجاد کنید.

زمانی که در اکسل ویرایشگر ویژوال بیسیک را باز می‌کنید، باید منبع کتابخانه‌ی CDO را مشخص کنید. برای این کار در ویرایشگر به مسیر (Tools > References) بروید.

داخل لیست نمایش داده شده به سمت پایین اسکرول کنید تا به (Microsoft CDO for Windows 2000 Library) برسید. تیک این گزینه را زده و روی (OK) کلیک کنید.

تنظیم ارسال‌کننده و گیرنده‌ CDO

حالا می‌توانید برای ارسال ایمیل از داخل اکسل از CDO استفاده کنید. برای این کار، ابتدا باید دریافت کننده‌ی ایمیل‌ها را مشخص کرده و تمامی فیلدهای مورد نیاز برای ارسال ایمیل را تنظیم کنید. در حالی که پر کردن بیشتر فیلدها اختیاری است، دو فیلد (From) و (To) اجباری هستند.

1Dim CDO_Mail As Object
2Dim CDO_Config As Object
3Dim SMTP_Config As Variant
4Dim strSubject as String
5Dim strFrom as String
6Dim strTo as String
7Dim strCc as String
8Dim strBcc as String
9Dim strBody As String
10 
11strSubject = "Results from Excel Spreadsheet"
12strFrom = "ryxxxxxx@xxxxxcast.net
13"strTo = "rdxxxxxx@gmail.com"
14strCc = ""
15strBcc = ""strBody = "The total results for this quarter are: " & Str(Sheet1.Cell

نکته‌ی جالب این است که می‌توانید هر رشته‌ای که برای سفارشی‌سازی یک پیام ایمیل می‌خواهید ایجاد کرده و آن را به متغیر (strBody) اختصاص دهید. با استفاده از رشته‌ای (&) دو کامپوننت پیام را جدا کنید تا اطلاعات هر برگه از اکسل دقیقا در پیام ایمیل قرار گیرد.

تنظیم CDO برای استفاده از SMTP خارجی

بخش بعدی این کد جایی است که باید CDO را با استفاده از (SMTP) سرور خارجی که قصد به کارگیری آن را دارید، تنظیم کنید. در این حالت نیازی نیست از (SSL) استفاده کنید؛ چرا که سرور SMTP به آن نیازی ندارد. CDO با SSL سازگار است، اما این موضوع خارج از حوصله‌ی این مقاله است.

1Set CDO_Mail = CreateObject("CDO.Message")
2On Error GoTo Error_Handling 
3Set CDO_Config = CreateObject("CDO.Configuration")
4CDO_Config.Load -1 
5Set SMTP_Config = CDO_Config.Fields
6With SMTP_Config
7.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
8.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 
9.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 
10.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "email@website.com" 
11.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" 
12.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
13.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
14.Update
15End With
16With CDO_Mail Set .Configuration = CDO_Config

نهایی‌سازی راه‌اندازی CDO

بعد از اینکه ارتباط با SMTP سرور برای ارسال ایمیل انجام شد، همه‌ی کاری که باید انجام دهید این است که فیلدهای مورد نیاز برای (CDO_Mail Object) را پر کنید و دستور (Send) را بزنید. در قسمت زیر چگونگی این کار را می‌بینید:

CDO_Mail.Subject = strSubject
CDO_Mail.From = strFrom
CDO_Mail.To = strToCDO_Mail.TextBody = strBody
CDO_Mail.CC = strCcCDO_Mail.BCC = strBcc
CDO_Mail.Send Error_Handling:
If Err.Description <> "" Then MsgBox Err.Description

همانند بازیابی ایمیل در اوت‌لوک، هیچ پنجره‌ یا پیغام هشداری به صورت پاپ‌آپ نمایش داده نمی‌شود. CDO به سادگی در کنار ایمیل قرار می‌گیرد و با استفاده از جزئیات ارتباط سرور SMTP، پیام را ارسال می‌کند. این ساده‌ترین روشی است که می‌توانید با استفاده از اسکریپت‌های ویژوال بیسیک به صورت خودکار در ورد یا اکسل ایمیل ارسال کنید.

عیب‌یابی

اگر خطایی به صورت (The transport failed to connect to the server) دریافت کردید، مطمئن شوید که نام کاربری، رمز عبور، سرور SMTP و شماره پورت را به درستی در خط‌های مورد نظر زیر (With SMTP_Config) وارد کرده‌اید.

خودکارسازی فرایند

تا اینجا که همه‌ی کارها را به خوبی انجام داده‌اید، می‌توانید اطلاعاتی را به صورت ایمیل از طریق اکسل ارسال کنید. با وجود این، شاید بخواهید این کار به صورت مداوم تکرار شود که در این صورت باید فرایند خود را به صورت خودکار انجام دهید.

برای این کار باید تغییراتی را در ماکرویی که ایجاد کرده‌اید اعمال کنید. به ویرایشگر ویژوال بیسیک بروید و تمام کدهایی که کنار هم قرار دارد کپی کنید. سپس از زیرشاخه‌ی (Project) گزینه‌ی (ThisWorkbook) را انتخاب کنید.

کدهای خود را داخل ThisWorkBook کپی و سپس جایگذاری کنید. سپس اولی خط را با ()SubWorkbook_Open جایگزین کنید. این کار باعث می‌شود به محض اجرای فایل، ماکرو نیز اجرا شود.

سپس، (Task Scheduler) را باز کنید. از این ابزار برای این استفاده می‌کنیم که از ویندوز بخواهیم به صورت خودکار در بازه‌های زمانی مشخص صفحه‌ی گسترده را باز کرده و ماکرو بتواند به صورت خودکار ایمیل را ارسال کند.

از منوی (Action) گزینه‌ی (...Create Basic Task) را انتخاب کرده و از طریق پنجره‌ی ویزارد تا جایی به صفحه‌ی Action برسید مراحل را پیش بروید. سپس (Start a program) را انتخاب کرده روی (Next) کلیک کنید.

از دکمه‌ی (Browse) برای پیدا کردن مسیر اکسل روی کامپیوتر خود استفاده کرده یا مسیر را داخل فیلد (Program/script) کپی و پیست کنید. سپس مسیر سند اکسل را داخل فیلد (Add arguments) وارد کنید. ویزارد را کامل کرده و زمانبندی را انجام دهید. بهتر است یک بار در فاصله‌ی زمانی کوتاه یک تست بگیرید تا ببینید همه چیز درست کار می‌کند.

باید تنظیمات (Trust Center) را انجام دهید تا مطمئن شوید که ماکرو به درستی کار می‌کند. برای این کار بعد از باز کردن صفحه‌ی گسترده‌ی اکسل به مسیر (File > Options > Trust Center) بروید. روی (Trust Center Settings) کلیک کرده و در پنجره‌ی بعدی گزینه‌ی رادیویی را روی (Never show information about blocked content) قرار دهید.

اگر به این مقاله علاقه‌مند بوده‌اید، شاید مقاله‌های زیر نیز برای شما جذاب و مفید باشد:

--

بر اساس رای ۷ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
makeuseof
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *