কম্পিউটার টিউটোরিয়াল

VBA স্ক্রিপ্ট দিয়ে Excel স্প্রেডশিট থেকে ইমেইল পাঠানো

Microsoft Excel থেকে ইমেইল পাঠানো কয়েকটি সিম্পল স্ক্রিপ্ট দিয়ে সম্ভব। এই ফাংশনালিটি যোগ করলে Excel-এ আপনি অনেক বেশি কাজ করতে পারবেন।

আমরা অনেক Excel ম্যাক্রো নিয়ে আলোচনা করেছি, যা VBA স্ক্রিপ্টের মতো কাজ করে কিন্তু প্রোগ্রামিং জ্ঞান লাগে না। কিন্তু VBA দিয়ে অনেক এডভান্সড কাজ করা যায়, যেমন আপনার PC-র সारी ইনফো সহ স্প্রেডশিট রিপোর্ট তৈরি করা।

ভিডিও টিউটোরিয়াল দেখতে চান? সেটাও আছে!

কেন Excel থেকে ইমেইল পাঠাবেন?

Excel থেকে ইমেইল পাঠানোর অনেক কারণ থাকতে পারে।

হয়তো আপনার スタッフ সপ্তাহে ডকুমেন্ট/স্প্রেডশিট আপডেট করে, আপনি আপডেট হলে ইমেইল নোটিফিকেশন চান। অথবা কন্ট্যাক্টের স্প্রেডশিট আছে, সবার একসাথে এক ইমেইল পাঠাতে চান।

শاید মনে করছেন Excel থেকে ইমেইল ব্রডকাস্ট স্ক্রিপ্টিং জটিল। কিন্তু এমন নয়।

এই আর্টিকেলে আমরা Collaboration Data Objects (CDO) ফিচার ব্যবহার করব, যা Excel VBA-এ অনেক দিন ধরে উপলব্ধ।

VBA স্ক্রিপ্ট দিয়ে Excel স্প্রেডশিট থেকে ইমেইল পাঠানো

CDO হলো Windows-এ অনেক আগে থেকে ব্যবহৃত মেসেজিং কম্পোনেন্ট। আগে এটিকে CDONTS বলত, Windows 2000/XP-এ "CDO for Windows 2000" নামে রিপ্লেস করা হয়। এই কম্পোনেন্ট আপনার VBA ইনস্টলেশনে (Word/Excel-এ) ইতিমধ্যেই আছে।

CDO কম্পোনেন্ট ব্যবহার করে Windows প্রোডাক্টে VBA দিয়ে ইমেইল পাঠানো অত্যন্ত সহজ। এই উদাহরণে Excel-এ CDO ব্যবহার করে নির্দিষ্ট সেলের রেজাল্ট ইমেইল করব।

স্টেপ ১: VBA ম্যাক্রো তৈরি করুন

প্রথমে Excel Developer ট্যাবে যান।

Developer ট্যাবে Controls বক্স থেকে Insert ক্লিক করে কমান্ড বাটন সিলেক্ট করুন।

VBA স্ক্রিপ্ট দিয়ে Excel স্প্রেডশিট থেকে ইমেইল পাঠানো

শিটে বাটন টানুন, তারপর Developer রিবনে Macros ক্লিক করে নতুন ম্যাক্রো তৈরি করুন।

VBA স্ক্রিপ্ট দিয়ে Excel স্প্রেডশিট থেকে ইমেইল পাঠানো

Create ক্লিক করলে VBA এডিটর খুলবে।

এডিটরে Tools → References এ যেতে CDO লাইব্রেরি রেফারেন্স যোগ করুন।

VBA স্ক্রিপ্ট দিয়ে Excel স্প্রেডশিট থেকে ইমেইল পাঠানো

লিস্টে নিচে স্ক্রল করে Microsoft CDO for Windows 2000 Library খুঁজে চেকবক্সে টিক দিয়ে OK ক্লিক করুন।

VBA স্ক্রিপ্ট দিয়ে Excel স্প্রেডশিট থেকে ইমেইল পাঠানো

OK ক্লিক করার পর ফাংশনের নাম নোট করে রাখুন, পরে লাগবে।

স্টেপ ২: CDO "From" ও "To" ফিল্ড সেটআপ করুন

পहলে মেইল অবজেক্ট তৈরি করে ইমেইল পাঠাতে szüksয় সব ফিল্ড সেট করুন।

অনেক ফিল্ড অপশনাল, কিন্তু 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 ভেরিয়েবলে অ্যাসাইন করতে পারেন।

& স্ট্রিং অপারেটর দিয়ে Excel শিটের ডেটা সরাসরি ইমেইল মেসেজে ইনসার্ট করা যায়, উপরের কোডের মত।

স্টেপ ৩: এক্সটার্ন্যাল SMTP ব্যবহার করতে CDO কনফিগার করুন

এই অংশে CDO কে এক্সটার্ন্যাল SMTP সার্ভার ব্যবহার করতে কনফিগার করব।

এই উদাহরণ Gmail-এ নন-SSL সেটআপ। CDO SSL সাপোর্ট করে, কিন্তু এই আর্টিকেলের স্কোপ বাইরে। SSL লাগলে GitHub-এ এডভান্সড কোড আছে।

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("https://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("https://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("https://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("https://schemas.microsoft.com/cdo/configuration/sendusername") = "email@website.com"
.Item("https://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
.Item("https://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("https://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With

স্টেপ ৪: CDO সেটআপ ফাইনালাইজ করুন

SMTP সার্ভার কানেকশন কনফিগার হলে CDO_Mail অবজেক্ট-এর ফিল্ডগুলো পূরণ করে 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

Outlook মেইল অবজেক্টের মতো পপ-আপ বা সিকিউরিটি алার্ট আসবে না।

CDO সহজে ইমেইল অ্যাসেম্বল করে আপনার SMTP কানেকশন দিয়ে পাঠিয়ে দেয়। Word বা Excel VBA-এ ইমেইল ইনকর্পোরেট করার সবচেয়ে সহজ পথ।

কমান্ড বাটনকে এই স্ক্রিপ্টের সাথে কানেক্ট করতে কোড এডিটরে Sheet1 ক্লিক করে ওয়ার্কশিটের VBA কোড দেখুন।

আপনার পেস্ট করা ফাংশনের নাম টাইপ করুন।

VBA স্ক্রিপ্ট দিয়ে Excel স্প্রেডশিট থেকে ইমেইল পাঠানো

আমার ইনবক্সে আসা মেসেজটি এরকম দেখিয়েছিল:

VBA স্ক্রিপ্ট দিয়ে Excel স্প্রেডশিট থেকে ইমেইল পাঠানো

নোট: The transport failed to connect to the server এরর আসলে username, password, SMTP সার্ভার, পোর্ট নম্বর চেক করুন With SMTP_Config এর নিচের লাইনে।

আরও এগিয়ে যান: পুরো প্রক্রিয়া অটোমেট করুন

বাটন চাপায় ইমেইল পাঠানো দারুণ, কিন্তু নিয়মিত করতে হলে অটোমেশন ভালো।

VBA এডিটরে যে কোড তৈরি করলেন সেটি কপি করুন।

Project hierarchy থেকে ThisWorkbook সিলেক্ট করুন।

কোড উইন্ডোর টপের দুটি ড্রপডাউন থেকে Workbook এবং Open সিলেক্ট করুন।

ইমেইল স্ক্রিপ্ট Private Sub Workbook_Open()-এ পেস্ট করুন। এটি Excel ফাইল ওপেন করলে ম্যাক্রো চালাবে।

VBA স্ক্রিপ্ট দিয়ে Excel স্প্রেডশিট থেকে ইমেইল পাঠানো

এবার Task Scheduler খুলুন।

Windows-কে শিডিউল অনুযায়ী স্প্রেডশিট অটোমেটিক খুলতে বলুন, তখন ম্যাক্রো রান হবে এবং ইমেইল পাঠাবে।

VBA স্ক্রিপ্ট দিয়ে Excel স্প্রেডশিট থেকে ইমেইল পাঠানো

Action মেনু থেকে Create Basic Task... সিলেক্ট করে উইজার্ড ফলো করুন Action স্ক্রিন পর্যন্ত।

Start a program সিলেক্ট করে Next ক্লিক করুন।

VBA স্ক্রিপ্ট দিয়ে Excel স্প্রেডশিট থেকে ইমেইল পাঠানো

Browse বাটনে Microsoft Excel-র লোকেশন খুঁজুন বা পাথ কপি-পেস্ট করুন Program/script ফিল্ডে।

Add arguments ফিল্ডে আপনার Excel ডকুমেন্টের পাথ দিন।

উইজার্ড কমপ্লিট করুন, শিডিউলিং সেট হয়ে যাবে।

কয়েক মিনিট পরের জন্য শিডিউল দিয়ে টেস্ট করুন, কাজ করলে ঠিক করুন।

নোট: Trust Center সেটিংস एডজাস্ট করতে হয়তে পারে ম্যাক্রো ঠিকমতো রান করার জন্য।

স্প্রেডশিট খুলে File → Options → Trust Center যান।

Trust Center Settings ক্লিক করে নেক্সট স্ক্রিনে রেডিও ডায়াল Never show information about blocked content-এ সেট করুন।

Microsoft Excel কে আপনার কাজে লাগান

Microsoft Excel অবিশ্বাস্য পাওয়ারফুল টুল, কিন্তু এর সর্বোচ্চ আউটপুট নেওয়া কিছুটা ভয়ংকর লাগতে পারে। সত্যিকারের মাস্টার করতে হলে VBA-এ কমফরটেবল হতে হবে, যা সহজ নয়।

তবে ফলাফল নিজের কথা বলে। VBA-এ হাত পাওয়া গেলে Excel আপনার বেসিক টাস্ক অটোমেট করবে, আপনি গুরুত্বপূর্ণ বিষয়ে ফোকাস করতে পারবেন।

VBA দক্ষতা অর্জনে সময় লাগে, কিন্তু ধৈর্য ধরে থাকলে ফল পাবেন।

শুরু করতে পারেন আমাদের Excel-এ VBA টিউটোরিয়াল। সেটা শিখলে এই ইমেইল স্ক্রিপ্ট আপনাকে শিশু খেলা লাগবে।

  1. এক্সেল লিস্ট থেকে বাল্ক ইমেইল পাঠান: ২টি প্রমাণিত অটোমেশন পদ্ধতি

  2. ইমেইলের মাধ্যমে সম্পাদনাযোগ্য এক্সেল স্প্রেডশিট পাঠান: ৩টি দ্রুত ও সহজ পদ্ধতি

  3. সার্ভে ফলাফল সহজে এক্সেলে এক্সপোর্ট করুন: ধাপে ধাপ গাইড

  4. আপনার মেসেজ সুরক্ষিত করুন: জিমেইল এবং আউটলुकে ইমেইল এনক্রিপ্ট করুন