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

এক্সেলে VBA ম্যাক্রো বা স্ক্রিপ্ট তৈরির পদ্ধতি

মাইক্রোসফট এক্সেল ব্যবহারকারীদের ম্যাক্রো এবং ভিজুয়াল বেসিক ফর অ্যাপ্লিকেশনস (VBA) স্ক্রিপ্টিং দিয়ে ফিচার ও কমান্ড অটোমেট করতে সক্ষম করে। VBA হল এক্সেল যা ম্যাক্রো তৈরিতে ব্যবহর করে প্রোগ্রামিং ল্যাঙ্গুয়েজ। এটি নির্দিষ্ট শর্তের উপর ভিত্তি করে অটোমেটেড কমান্ড এক্সিকিউট করতেও পারে।

ম্যাক্রো হল পূর্ব-রেকর্ডেড কমান্ডের একটি শৃঙ্খলা। নির্দিষ্ট কমান্ড দেওয়া হলে সেগুলো স্বয়ংক্রিয়ভাবে চলে। আপনার মাইক্রোসফট এক্সেলে যদি বারবার একই কাজ করতে হয় — যেমন হিসাব, প্রজেক্ট ম্যানেজমেন্ট বা পে রোল — তবে এই প্রসেসগুলো অটোমেট করলে অনেক সময় বাঁচবে।

এক্সেলের Developer ট্যাবে Ribbon-এ ব্যবহারকারীরা মাউস ক্লিক ও কীবোর্ড স্ট্রোক রেকর্ড করতে পারেন (ম্যাক্রো)। কিন্তু কিছু ফাংশন ম্যাক্রোর চেয়ে গভীর স্ক্রিপ্টিং চায়। সেখানে VBA স্ক্রিপ্টিং বড় সুবিধা দেয়। এটি ব্যবহারকারীদের আরও জটিল স্ক্রিপ্ট তৈরি করতে দেয়।

এই আর্টিকেলে আমরা নিচের বিষয়গুলো ব্যাখ্যা করব:

  • স্ক্রিপ্ট ও ম্যাক্রো সক্রিয় করা
  • এক্সেলে ম্যাক্রো তৈরির পদ্ধতি
  • ম্যাক্রোর নির্দিষ্ট উদাহরণ
  • VBA সম্পর্কে আরও জানুন
  • VBA শুরুর জন্য বাটন তৈরি করুন
  • বাটনে কার্যকারিতা দিতে কোড যোগ করুন
  • কাজ করলো কি?

স্ক্রিপ্ট ও ম্যাক্রো সক্রিয় করা

এক্সেলে ম্যাক্রো বা VBA স্ক্রিপ্ট তৈরি করার আগে আপনাকে Ribbon মেনুতে Developer ট্যাব সক্রিয় করতে হবে। Developer ট্যাব ডিফল্টভাবে সক্রিয় থাকে না। এটিকে সক্রিয় করতে:

  • এক্সেল ওয়ার্কশিট খুলুন।
  • File > Options > Customize Ribbon-এ ক্লিক করুন।
  • Developer-এর পাশের বক্সে টিক দিন।
  • Ribbon মেনু থেকে Developer ট্যাবে ক্লিক করুন।
  • এরপর Macro Security-এ ক্লিক করুন এবং Enable all macros (not recommended; potentially dangerous code can run) এর পাশের বক্সে টিক দিন।
  • তারপর OK চাপুন।

ম্যাক্রো ডিফল্টভাবে বন্ধ থাকে এবং সতর্কতা দেয়ার কারণ হল এটি কম্পিউটার কোড যা ম্যালওয়্যার ধারণ করতে পারে।

শেয়ার্ড প্রজেক্টে এক্সেল ও অন্যান্য মাইক্রোসফট প্রোগ্রামে কাজ করলে নিশ্চিত হন ডকুমেন্টটি বিশ্বস্ত সোর্স থেকে আসছে।

স্ক্রিপ্ট ও ম্যাক্রো ব্যবহার শেষ হলে সব ম্যাক্রো নিষ্ক্রিয় করুন যাতে সম্ভাব্য ম্যালিশিয়াস কোড অন্যান্য ডকুমেন্টকে সংক্রমিত না করতে পারে।

এক্সেলে ম্যাক্রো তৈরি করুন

ম্যাক্রো রেকর্ড করার সময় এক্সেলে আপনার সকল অ্যাকশন সেটিতে যোগ হয়ে যায়।

  • Developer ট্যাব থেকে Record Macro-এ ক্লিক করুন।
  • Macro name, Shortcut key, এবং Description লিখুন। ম্যাক্রো নাম অবশ্যই অক্ষর দিয়ে শুরু হতে হবে এবং স্পেস থাকতে পারবে না। শর্টকাট কী অবশ্যই একটি অক্ষর হতে হবে।

ম্যাক্রো কোথায় সংরক্ষণ করবেন সেটি নিচের অপশনগুলো থেকে বেছে নিন:

  • Personal Macro Workbook: এটি একটি হিডেন এক্সেল ডকুমেন্ট তৈরি করবে যেখানে ম্যাক্রো সংরক্ষিত থাকবে এবং যেকোনো এক্সেল ডকুমেন্টের সাথে ব্যবহার করা যাবে।
  • New Workbook: তৈরি ম্যাক্রো সংরক্ষণের জন্য একটি নতুন এক্সেল ডকুমেন্ট তৈরি করবে।
  • This Workbook: এটি শুধু আপনার বর্তমানে এডিট করা ডকুমেন্টে প্রয়োগ্য হবে।

হলে OK চাপুন।

  • আপনি যা অটোমেট করতে চান সেই অ্যাকশনগুলো চালিয়ে যান। শেষ হলে Stop Recording চাপুন।
  • ম্যাক্রো অ্যাক্সেস করতে আপনার দেওয়া কীবোর্ড শর্টকাট ব্যবহার করুন।

ম্যাক্রোর নির্দিষ্ট উদাহরণ

চলুন একটি সিম্পল স্প্রেডশীট দিয়ে শুরু করি গ্রাহক এবং তারা কত টাকা বকায়সেছে। আমরা ওয়ার্কশিট ফরম্যাট করার একটি ম্যাক্রো তৈরি করব।

ধরুন আপনি সিদ্ধান্ত নিয়েছেন সকল স্প্রেডশীটে ভিন্ন ফরম্যাট ব্যবহার করবেন, যেন প্রথম ও শেষ নাম আলাদা কলামে থাকে।

আপনি ম্যানুয়ালি এটি পরিবর্তন করতে পারেন। অথবা একটি ম্যাক্রো প্রোগ্রাম তৈরি করতে পারেন যা স্বয়ংক্রিয়ভাবে সঠিক ফরম্যাটে আনে।

ম্যাক্রো রেকর্ড করুন

  • Record Macro-এ ক্লিক করুন। এটিকে Format_Customer_Data নাম দিয়ে OK চাপুন।
  • ইচ্ছিত ফরম্যাট পেতে প্রথম কলামের নাম First Name করুন।
  • তারপর A কলামের পাশে একটি কলাম ইনসার্ট করুন এবং সেটিকে Last Name নাম দিন।
  • প্রথম কলামের সকল নাম হাইলাইট করুন (যাতে এখনও প্রথম ও শেষ নাম একসাথে আছে), এবং রিবন নেভিগেশন থেকে Data-এ ক্লিক করুন।
  • Text to Columns-এ ক্লিক করুন।
  • Delimited > Next > Separate by Space > Next > Finish টিক দিন। নিচের স্ক্রিনশটে দেখুন উপরের প্রসেসে কীভাবে প্রথম ও শেষ নাম আলাদা হয়েছে।
  • Balance Due ফিল্ড ফরম্যাট করতে পরিমাণগুলো হাইলাইট করুন। Home > Conditional Formatting > Highlight Cell Rules > Greater Than > 0-এ ক্লিক করুন।

এটি বকেয়া পরিমাণ থাকা সেলগুলো হাইলাইট করবে। আমরা কিছু গ্রাহক যোগ করেছি যাদের বকেয়া নেই, ফরম্যাটিং আরও স্পষ্ট করার জন্য।

  • ফিরে Developer-এ যান এবং Stop Recording চাপুন।

ম্যাক্রো প্রয়োগ করুন

ম্যাক্রো রেকর্ড করার আগের মূল স্প্রেডশীট থেকে শুরু করুন। Macros-এ ক্লিক করুন, তৈরি করা ম্যাক্রোটি সিলেক্ট করে Run চাপুন।

ম্যাক্রো রান করলে সকল ফরম্যাটিং স্বয়ংক্রিয় হয়ে যাবে। আমরা যা ম্যাক্রো তৈরি করেছি সেটি Visual Basic Editor-এ সংরক্ষিত।

ব্যবহারকারীরা অনেকভাবে ম্যাক্রো রান করতে পারেন। আরও জানতে "Run a macro" পড়ুন।

VBA সম্পর্কে আরও জানুন

VBA সম্পর্কে জানতে Developer ট্যাব থেকে Macro-এ ক্লিক করুন। আপনার তৈরি করা একটি খুঁজে Edit চাপুন।

উপরের বক্সে যা কোড দেখাচ্ছে সেটি আপনার ম্যাক্রো রেকর্ড করার সময় তৈরি হয়েছিল।

এটিই সেটি যা আপনি রান করবেন অন্য গ্রাহক পেমেন্ট স্প্রেডশীট একইভাবে ফরম্যাট করার জন্য।

VBA শুরুর জন্য বাটন তৈরি করুন

উপরের একই স্প্রেডশীটে গ্রাহক ও বকেয়া রেখে একটি কারেন্সি কনভার্টার বানাই।

  • বাটন এলিমেন্ট ইনসার্ট করতে Developer ট্যাবে যান।
  • Controls সেকশনে Insert-এর পাশের ড্রপডাউন থেকে ActiveX Command Button সিলেক্ট করুন।
  • বাটনটি স্প্রেডশীটে যেকোনো জায়গায় ড্র্যাগ করুন যাতে সহজে অ্যাক্সেস ও পরিবর্তন করা যায়।
  • কোড অ্যাট্যাচ করতে বাটনে রাইট-ক্লিক করুন এবং Properties সিলেক্ট করুন। Name হিসেবে CommandButton এবং Caption হিসেবে Convert রাখুন (এটি বাটনের টেক্সট)।

বাটনে কার্যকারিতা দিতে কোড যোগ করুন

VBA কোডিং এক্সেল ইন্টারফেসে হয় না। এটি আলাদা এনভায়রনমেন্টে হয়।

  • Developer ট্যাবে যান এবং নিশ্চিত হন Design Mode সক্রিয়।
  • আমরা যা বাটন তৈরি করেছি তার কোড অ্যাক্সেস করতে সেটিতে রাইট-ক্লিক করুন এবং View Code সিলেক্ট করুন।
  • নিচের স্ক্রিনশটের কোডে লক্ষ্য করুন শুরু (Private Sub) এবং শেষ (End Sub) ইতিমধ্যেই আছে।
  • নিচের কোড কারেন্সি কনভারশন প্রসেস চালাবে।

ActiveCell.Value = (ActiveCell * 1.28)

এই সেকশনের উদ্দেশ্য হল আমাদের স্প্রেডশীটের কারেন্সি কনভার্ট করা। উপরের স্ক্রিপ্ট GBP থেকে USD এক্সচেঞ্জ রেট রিফ্লেক্ট করে। একটি সেলের নতুন মান হবে সেটিতে থাকা মান ১.২৮ দিয়ে গুণিত।

নিচের স্ক্রিনশটে দেখুন কোডটি VBA উইন্ডোতে ইনসার্ট করার পর কীভাবে দেখাচ্ছে।

  • শীর্ষ নেভিগেশনে File-এ যান এবং Close and Return to Microsoft Excel ক্লিক করুন মূল এক্সেল ইন্টারফেসে ফিরে যাওয়ার জন্য।

কাজ করলো কি?

আপনার কোড টেস্ট করার আগে আপনাকে প্রথমে Design Mode নিষ্ক্রিয় করতে হবে (সেটিতে ক্লিক করুন) যাতে বাটনটি কাজ করতে পারে।

  • আপনার স্প্রেডশীটে যেকোনো সংখ্যা টাইপ করুন এবং তারপর Convert বাটনে ক্লিক করুন। আপনার সংখ্যা প্রায় এক-চতুর্থাংশ বেড়ে গেলে বুঝবেন কাজ করলো।

এই উদাহরণে, আমি একটি সেলে ৪ দিয়েছি। Convert চাপলে সংখ্যাটি ৫.১২ হয়ে গেলো। যেহেতু ৪ কে ১.২৮ দিয়ে গুণ করলে ৫.১২ হয়, কোডটি সঠিকভাবে এক্সিকিউট হয়েছে।

এখন আপনি এক্সেলে ম্যাক্রো বা স্ক্রিপ্ট তৈরি করতে জানেন, আপনি এক্সেলে अनेक অ্যাকশন অটোমেট করতে পারবেন।

  1. কাস্টম এক্সেল ফাংশন তৈরির পদ্ধতি

  2. মাইক্রোসফট এক্সেল (Microsoft Excel)-এ VBA ম্যাক্রো লেখা শুরু করার পদ্ধতি

  3. এক্সেল ভিবিএ-এ ডেটা এন্ট্রি ফর্ম তৈরি করুন – ধাপে ধাপে গাইড

  4. ম্যাক্রো ছাড়া এক্সেল বাটন তৈরি করুন: ৩টি সহজ, ম্যাক্রো-মুক্ত পদ্ধতি