আপনি যদি কেবলমাত্র ভিবিএ দিয়ে শুরু করছেন, তবে আপনি আমাদের নতুনদের জন্য ভিবিএ গাইড অধ্যয়ন শুরু করতে চাইবেন। তবে যদি আপনি একটি পাকা ভিবিএ বিশেষজ্ঞ হন এবং আপনি এক্সেলের ভিবিএর সাথে আরও আরও উন্নত জিনিসগুলি সন্ধান করতে পারেন তবে পড়া চালিয়ে যান
এক্সেলের মধ্যে ভিবিএ কোডিং ব্যবহারের দক্ষতা পুরো বিশ্বে খোলে অটোমেশন এর। আপনি এক্সেলে গণনাগুলি স্বয়ংক্রিয় করতে পারেন, পুশবটনগুলি এবং ইমেল প্রেরণ করতে পারেন। ভিবিএর সাথে আপনার প্রাত্যহিক কাজটি স্বয়ংক্রিয় করার আরও বেশি সম্ভাবনা রয়েছে যা আপনি বুঝতে পারবেন না
এক্সেলে ভিবিএ কোড লেখার মূল লক্ষ্যটি যাতে আপনি তথ্য আহরণ করতে পারেন একটি স্প্রেডশিট থেকে, এটিতে বিভিন্ন গণনা সম্পাদন করুন এবং তারপরে ফলাফলগুলি স্প্রেডশীটে ফিরে লিখুন
নীচে এক্সেলের ভিবিএর সর্বাধিক সাধারণ ব্যবহার।
ডেটা আমদানি করুন এবং গণনা সম্পাদন করুন
কোনও বোতাম টিপে ব্যবহারকারীর কাছ থেকে ফলাফল গণনা করুন
ইমেল গণনার ফলাফল কারও কাছে
এই তিনটি উদাহরণ সহ, আপনার উচিত আপনার নিজস্ব উন্নত এক্সেল ভিবিএ কোডের বিভিন্ন রাইটিং লিখতে সক্ষম করুন
ডেটা আমদানি করা এবং গণনা সম্পাদন
লোকেরা এক্সেল ব্যবহার করে এমন সাধারণ বিষয়গুলির মধ্যে একটি Excel এক্সেলের বাইরে বিদ্যমান ডেটাতে গণনা সম্পাদন করছে। আপনি যদি ভিবিএ ব্যবহার না করেন, তার অর্থ হল আপনাকে ম্যানুয়ালি ডেটা আমদানি করতে হবে, গণনা পরিচালনা করতে হবে এবং সেই মানগুলি অন্য শিট বা প্রতিবেদনে আউটপুট করতে হবে
ভিবিএর সাহায্যে আপনি পুরো প্রক্রিয়াটি স্বয়ংক্রিয় করতে পারেন। উদাহরণস্বরূপ, যদি প্রতি সোমবার আপনার কম্পিউটারে একটি নতুন সিএসভি ফাইল ডাউনলোড হয় তবে আপনি মঙ্গলবার সকালে আপনার স্প্রেডশিটটি খুললে চালনার জন্য আপনার ভিবিএ কোডটি কনফিগার করতে পারেন
নীচের আমদানি কোডটি হবে আপনার এক্সেল স্প্রেডশিটে CSV ফাইলটি চালান এবং আমদানি করুন
Dim ws As Worksheet, strFile As String
Set ws = ActiveWorkbook.Sheets("Sheet1")
Cells.ClearContents
strFile = “c:\temp\purchases.csv”
With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh
End With
এক্সেল ভিবিএ সম্পাদনা সরঞ্জামটি খুলুন এবং পত্রক 1 অবজেক্টটি নির্বাচন করুন। অবজেক্ট এবং মেথড ড্রপডাউন বাক্স থেকে, ওয়ার্কশিটএবং অ্যাক্টিভেটনির্বাচন করুন। আপনি স্প্রেডশিটটি যখনই খুলবেন এটি কোড চালাবে
এটি একটি সাব ওয়ার্কশিট_অ্যাক্টিভেট ()ফাংশন তৈরি করবে। সেই ফাংশনে উপরের কোডটি আটকান
<চিত্র শ্রেণি = "অলস অ্যালিজেন্স্টার আকার-বড়">
এটি পত্রকএ সক্রিয় কার্যপত্রক সেট করে, শীটটি সাফ করে, স্ট্রফিলভেরিয়েবলের সাথে আপনি সংজ্ঞায়িত ফাইল পথ ব্যবহার করে ফাইলের সাথে সংযোগ স্থাপন করুন এবং তারপরে ফাইলের প্রতিটি লাইনের মাধ্যমেলুপ চক্র এবং ডেটা শীট এ সেল 1 এ শুরু করে
আপনি যদি এই কোডটি চালান, আপনি দেখতে পাবেন যে সিএসভি ফাইল ডেটা আপনার শূন্য স্প্রেডশীটে আমদানি করা হয়, <<শিট 1এ
আমদানি করা কেবল প্রথম পদক্ষেপ । এরপরে, আপনি কলামটির জন্য একটি নতুন শিরোনাম তৈরি করতে চান যাতে আপনার গণনার ফলাফল থাকবে। এই উদাহরণে, আসুন আমরা বলি যে আপনি প্রতিটি আইটেমের বিক্রয়ের জন্য প্রদত্ত 5% করের গণনা করতে চান
আপনার কোডটি নেওয়া উচিত ক্রমের ক্রমটি:
তৈরি করুন নতুন ফলাফলের কলামটি টেক্সসনামে পরিচিত।
বিক্রয়কৃত ইউনিটকলামটি লুপ করুন এবং বিক্রয় করের গণনা করুন
গণনার ফলাফল লিখুন পত্রকের উপযুক্ত সারিটিতে।
নিম্নলিখিত কোডটি এই সমস্ত পদক্ষেপটি সম্পাদন করবে
Dim LastRow As Long Dim StartCell As Range Dim rowCounter As Integer Dim rng As Range, cell As Range Dim fltTax As Double
Set StartCell = Range("A1")
'Find Last Row and Column LastRow = ws.Cells(ws.Rows.Count, StartCell.Column).End(xlUp).Row Set rng = ws.Range(ws.Cells(2, 4), ws.Cells(LastRow, 4))
rowCounter = 2 Cells(1, 5) = "taxes"
For Each cell In rng fltTax = cell.Value * 0.05 Cells(rowCounter, 5) = fltTax rowCounter = rowCounter + 1 Next cell
এই কোডটি সর্বশেষ সারিটি সন্ধান করেআপনার ডেটার শিটটিতে এবং তারপরে তথ্যের প্রথম এবং শেষ সারি অনুসারে ঘরগুলির পরিসর (বিক্রয়মূল্যের সাথে কলাম) নির্ধারণ করে। তারপরে কোডটি সেই সমস্ত কক্ষের মধ্য দিয়ে লুপ করে, করের গণনা সম্পাদন করে এবং ফলাফলগুলি আপনার নতুন কলামে (কলাম 5) লিখে দেয়
উপরের ভিবিএ কোডটি পূর্ববর্তী কোডের নীচে পেস্ট করুন এবং স্ক্রিপ্টটি চালান। ফলাফলগুলি কলাম E এ প্রদর্শিত হবে
এখন, আপনি যখনই আপনার এক্সেল ওয়ার্কশিটটি খুলবেন, এটি স্বয়ংক্রিয়ভাবে বাইরে চলে যাবে এবং সিএসভি ফাইল থেকে ডেটার সতেজ অনুলিপিটি পাবেন। তারপরে, এটি গণনা সম্পাদন করবে এবং ফলকে শীটটিতে লিখবে। আপনাকে আর ম্যানুয়ালি আর কিছু করতে হবে না!
বোতাম টিপুন ফলাফলগুলি গণনা করুন
যদি হিসাব চলে তখন আপনি যদি আরও সরাসরি নিয়ন্ত্রণ করতে চান , শীটটি খোলার সময় স্বয়ংক্রিয়ভাবে চলার পরিবর্তে আপনি তার পরিবর্তে একটি নিয়ন্ত্রণ বোতাম ব্যবহার করতে পারেন
আপনি কোন গণনাগুলি ব্যবহার করা হয় তা নিয়ন্ত্রণ করতে চান তবে নিয়ন্ত্রণ বোতামগুলি কার্যকর। উদাহরণস্বরূপ, উপরের মত একই ক্ষেত্রে, আপনি যদি একটি অঞ্চলের জন্য 5% করের হার এবং অন্য অঞ্চলের জন্য 7% করের হার ব্যবহার করতে চান তবে কি হবে?
আপনি একই সিএসভি আমদানি কোডকে মঞ্জুরি দিতে পারবেন? স্বয়ংক্রিয়ভাবে চালান, তবে আপনি যথাযথ বোতাম টিপলে চালের জন্য গণনা কোডটি ছেড়ে যান
উপরের মতো একই স্প্রেডশিটটি ব্যবহার করে, বিকাশকারীট্যাবটি নির্বাচন করুন এবং সন্নিবেশ সন্নিবেশ করুন নির্বাচন করুনফিতাটিতে নিয়ন্ত্রণগুলিগোষ্ঠী থেকে। ড্রপডাউন মেনু থেকে পুশ বোতামঅ্যাক্টিভ এক্স নিয়ন্ত্রণ নির্বাচন করুন
পুশ বোতামটি ডান ক্লিক করুন এবং বৈশিষ্ট্যনির্বাচন করুন। প্রোপার্টি উইন্ডোতে, ব্যবহারকারীকে আপনি কী প্রদর্শন করতে চান তাতে ক্যাপশনটি পরিবর্তন করুন। এক্ষেত্রে এটি হতে পারে 5% করের গণনা
আপনি এই টেক্সটটি নিজেই পুশ বোতামে প্রতিফলিত দেখতে পাবেন। বৈশিষ্ট্যউইন্ডোটি বন্ধ করুন এবং পুশবটন নিজেই ডাবল ক্লিক করুন। এটি কোড সম্পাদক উইন্ডোটি খুলবে এবং আপনার কার্সারটি ফাংশনের অভ্যন্তরে থাকবে যা ব্যবহারকারী যখন পুশবটন টিপবে তখন চলবে
শুল্ক রেট গুণককে 0.05 এ রেখে উপরের অংশটি থেকে কর গণনা কোডটি এই ফাংশনে আটকান। সক্রিয় শীটটি সংজ্ঞায়িত করতে নিম্নলিখিত 2 টি লাইন অন্তর্ভুক্ত করার কথা মনে রাখবেন
Dim ws As Worksheet, strFile As String
Set ws = ActiveWorkbook.Sheets("Sheet1")
এখন, দ্বিতীয় ধাক্কা বোতাম তৈরি করে, প্রক্রিয়াটি আবার পুনরাবৃত্তি করুন। ক্যাপশনটি করুন 7% করের গণনা
<চিত্র শ্রেণি = "অলস অ্যালিগেন্সেন্টার আকার-বড়">
সেই বোতামটিতে ডাবল ক্লিক করুন এবং একই কোডটি পেস্ট করুন তবে ট্যাক্স গুণককে 0.07 করুন
এখন আপনি কোন বোতামটি চাপছেন তার উপর নির্ভর করে করের কলামটি হবে সেই অনুযায়ী গণনা করা হবে
আপনার কাজ শেষ হয়ে গেলে আপনার শীটে দুটি ধাক্কা বাটন থাকবে। তাদের প্রত্যেকটি আলাদা করের গণনা শুরু করবে এবং ফলাফল কলামে বিভিন্ন ফলাফল লিখবে।
এটি পাঠ্য পাঠাতে, বিকাশকারীমেনুটি নির্বাচন করুন এবং ডিজাইন মোডনির্বাচন করুন <<ডিজাইন মোডঅক্ষম করতে পটিতে নিয়ন্ত্রণ গোষ্ঠী গঠন করুন / strong>এ। এটি পুশ বোতামগুলি সক্রিয় করবে।
কীভাবে "ট্যাক্স" ফলাফলের কলাম পরিবর্তন হয় তা দেখতে প্রতিটি পুশ বোতাম নির্বাচন করার চেষ্টা করুন
কারও কাছে ইমেল গণনার ফলাফল
কী আপনি যদি স্প্রেডশিটে ফলাফল ইমেলের মাধ্যমে কাউকে প্রেরণ করতে চান?
<চিত্র শ্রেণি = "অলস ডাব্লু-ব্লক-চিত্র আকার-বড়">
আপনি উপরের একই পদ্ধতিটি ব্যবহার করে বোসকে ইমেল শীটনামে আর একটি বোতাম তৈরি করতে পারেন। এই বোতামটির কোডটি এসএমটিপি ইমেল সেটিংস কনফিগার করতে এক্সেল সিডিও অবজেক্টটি ব্যবহার করে এবং ফলাফলকে ব্যবহারকারী-পঠনযোগ্য ফর্ম্যাটে ইমেল করা জড়িত
এই বৈশিষ্ট্যটি সক্ষম করতে আপনাকে সরঞ্জাম এবং তথ্যসূত্র করুন। উইন্ডোজ 2000 লাইব্রেরির জন্য মাইক্রোসফ্ট সিডিওতে নীচে স্ক্রোল করুনএটি সক্ষম করুন এবং ওকেনির্বাচন করুন>21
ইমেল প্রেরণ এবং স্প্রেডশিট ফলাফল এম্বেড করতে আপনার কোড তৈরি করতে হবে তার প্রধান তিনটি বিভাগ রয়েছে
প্রথমটি হোল্ডিংয়ের জন্য ভেরিয়েবল সেট আপ করছে বিষয়গুলি, ঠিকানাগুলিতে এবং থেকে এবং ইমেল বডি।
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 Dim LastRow As Long Dim StartCell As Range Dim rowCounter As Integer Dim rng As Range, cell As Range Dim fltTax As Double
Set ws = ActiveWorkbook.Sheets("Sheet1") strSubject = "Taxes Paid This Quarter" strFrom = "[email protected]" strTo = "[email protected]" strCc = "" strBcc = "" strBody = "The following is the breakdown of taxes paid on sales this quarter."
অবশ্যই ফলাফলগুলি কী তার উপর নির্ভর করে শরীরকে গতিশীল হওয়া দরকার course শীটটিতে, সুতরাং এখানে আপনাকে এমন একটি লুপ যুক্ত করতে হবে যা পরিসীমা পেরিয়ে যায়, ডেটা বের করে এবং একবারে শরীরে একটি লাইন লিখবে
Set StartCell = Range("A1")
'Find Last Row and Column
LastRow = ws.Cells(ws.Rows.Count, StartCell.Column).End(xlUp).Row
Set rng = ws.Range(ws.Cells(2, 4), ws.Cells(LastRow, 4))
rowCounter = 2
strBody = strBody & vbCrLf
For Each cell In rng
strBody = strBody & vbCrLf
strBody = strBody & "We sold " & Cells(rowCounter, 3).Value & " of " & Cells(rowCounter, 1).Value _
& " for " & Cells(rowCounter, 4).Value & " and paid taxes of " & Cells(rowCounter, 5).Value & "."
rowCounter = rowCounter + 1
Next cell
পরবর্তী বিভাগে এসএমটিপি সেটিংস সেট আপ করা জড়িত যাতে আপনি আপনার এসএমটিপি সার্ভারের মাধ্যমে ইমেল প্রেরণ করতে পারেন। আপনি যদি জিমেইল ব্যবহার করেন তবে এটি সাধারণত আপনার জিমেইল ইমেল ঠিকানা, আপনার জিমেইল পাসওয়ার্ড এবং Gmail এসএমটিপি সার্ভার (smtp.gmail.com)
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 protected]"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With
1 প্রতিস্থাপন করুনএবং আপনার নিজের অ্যাকাউন্টের বিশদ সহ পাসওয়ার্ড
অবশেষে, ইমেল প্রেরণা শুরু করতে নিম্নলিখিত কোডটি sertোকান
Error_Handling: If Err.Description <> "" Then MsgBox Err.Description
দ্রষ্টব্য: আপনি এই কোডটি চালানোর চেষ্টা করার সময় কোনও পরিবহন ত্রুটি দেখেন, সম্ভবত এটি আপনার Google অ্যাকাউন্ট "কম সুরক্ষিত অ্যাপ্লিকেশনগুলি" চালানো থেকে অবরুদ্ধ করছে। আপনাকে কম সুরক্ষিত অ্যাপ্লিকেশন সেটিংস পৃষ্ঠা পরিদর্শন করতে হবে এবং এই বৈশিষ্ট্যটি চালু করতে হবে
এটি সক্ষম হওয়ার পরে আপনার ইমেলটি প্রেরণ করা হবে। আপনার স্বয়ংক্রিয়ভাবে উত্পন্ন ফলাফলের ইমেলটি সেই ব্যক্তির মতো দেখতে এটিই দেখতে পাওয়া যায়
<চিত্র শ্রেণি = "অলস অ্যালিজেন্স্টার আকার-বড়">
আপনি দেখতে পাচ্ছেন যে এক্সেল ভিবিএ দিয়ে আপনি আসলে স্বয়ংক্রিয় করতে পারবেন a আপনি এই নিবন্ধটি সম্পর্কে শিখেছেন কোড স্নিপেটগুলি নিয়ে ঘুরে দেখার চেষ্টা করুন এবং আপনার নিজস্ব অনন্য ভিবিএ অটোমেশন তৈরি করুন