شما در حال مطالعه نسخه آفلاین یکی از مطالب «مجله فرادرس» هستید. لطفاً توجه داشته باشید، ممکن است برخی از قابلیتهای تعاملی مطالب، مانند امکان پاسخ به پرسشهای چهار گزینهای و مشاهده جواب صحیح آنها، نمایش نتیجه آزمونها، پاسخ تشریحی سوالات، پخش فایلهای صوتی و تصویری و غیره، در این نسخه در دسترس نباشند. برای دسترسی به نسخه آنلاین مطلب، استفاده از کلیه امکانات آن و داشتن تجربه کاربری بهتر اینجا کلیک کنید.
آموزش ارسال ایمیل از اکسل با استفاده از اسکریپتهای ویژوال بیسیک
۴۳۹۹ بازدید
آخرین بهروزرسانی: ۵ دی ۱۴۰۱
زمان مطالعه: ۴ دقیقه
دانلود PDF مقاله
استفاده از ایمیلها به عنوان بخشی از هر برنامه، میتواند روشی جالب برای خودکارسازی وظایف مهم باشد و همچنین به میزان قابل توجهی ارزش و عملکرد هر برنامه یا اسکریپت را بالا ببرد.
شما در جاهای مختلفی میتوانید از ارسال ایمیل استفاده کنید. اما اگر بخواهید از طریق محصولات بستهی آفیس مایکروسافت مانند ورد و اکسل به صورت خودکار ایمیل ارسال کنید باید چه کاری انجام دهید؟
طبیعتا دلایل زیادی برای انجام چنین کاری وجود دارد. ممکن است کارمندانی داشته باشید که اسناد و صفحات گسترده را به صورت هفتگی بهروزرسانی میکنند و بخواهید بعد از به روز رسانی ایمیل هشدار برای شما ارسال شود و حتی گزارشی از اطلاعات این برگهها دریافت کنید. روشهایی وجود دارد که با استفاده از آنها میتوانید از طریق اکسل به صورت خودکار ایمیل ارسال کنید اما هنوز (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) اجباری هستند.
نکتهی جالب این است که میتوانید هر رشتهای که برای سفارشیسازی یک پیام ایمیل میخواهید ایجاد کرده و آن را به متغیر (strBody) اختصاص دهید. با استفاده از رشتهای (&) دو کامپوننت پیام را جدا کنید تا اطلاعات هر برگه از اکسل دقیقا در پیام ایمیل قرار گیرد.
تنظیم CDO برای استفاده از SMTP خارجی
بخش بعدی این کد جایی است که باید CDO را با استفاده از (SMTP) سرور خارجی که قصد به کارگیری آن را دارید، تنظیم کنید. در این حالت نیازی نیست از (SSL) استفاده کنید؛ چرا که سرور SMTP به آن نیازی ندارد. CDO با SSL سازگار است، اما این موضوع خارج از حوصلهی این مقاله است.
نهاییسازی راهاندازی CDO
بعد از اینکه ارتباط با SMTP سرور برای ارسال ایمیل انجام شد، همهی کاری که باید انجام دهید این است که فیلدهای مورد نیاز برای (CDO_Mail Object) را پر کنید و دستور (Send) را بزنید. در قسمت زیر چگونگی این کار را میبینید:
همانند بازیابی ایمیل در اوتلوک، هیچ پنجره یا پیغام هشداری به صورت پاپآپ نمایش داده نمیشود. 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) قرار دهید.
اگر به این مقاله علاقهمند بودهاید، شاید مقالههای زیر نیز برای شما جذاب و مفید باشد:
شما در حال مطالعه نسخه آفلاین یکی از مطالب «مجله فرادرس» هستید. لطفاً توجه داشته باشید، ممکن است برخی از قابلیتهای تعاملی مطالب، مانند امکان پاسخ به پرسشهای چهار گزینهای و مشاهده جواب صحیح آنها، نمایش نتیجه آزمونها، پاسخ تشریحی سوالات، پخش فایلهای صوتی و تصویری و غیره، در این نسخه در دسترس نباشند. برای دسترسی به نسخه آنلاین مطلب، استفاده از کلیه امکانات آن و داشتن تجربه کاربری بهتر اینجا کلیک کنید.