VBA এর সাথে এক্সেল ম্যাক্রো প্রোগ্রাম করার সময় 4 টি ভুল এড়ানো

VBA এর সাথে এক্সেল ম্যাক্রো প্রোগ্রাম করার সময় 4 টি ভুল এড়ানো

মাইক্রোসফট এক্সেল এটি ইতিমধ্যে একটি সক্ষম ডেটা বিশ্লেষণের সরঞ্জাম, কিন্তু ম্যাক্রোর সাথে পুনরাবৃত্তিমূলক কাজগুলিকে স্বয়ংক্রিয় করার ক্ষমতার সাথে ভিজ্যুয়াল বেসিক ফর অ্যাপ্লিকেশনগুলিতে (VBA) সহজ কোড লিখে এটি অনেক বেশি শক্তিশালী। ভুলভাবে ব্যবহার করা হলেও, VBA সমস্যা সৃষ্টি করতে পারে।





এমনকি যদি আপনি একজন প্রোগ্রামার না হন, VBA সহজ ফাংশন অফার করে যা আপনাকে আপনার স্প্রেডশীটে চিত্তাকর্ষক কার্যকারিতা যোগ করতে দেয়।





আপনি যদি কোন VBA গুরু হন যে Excel- এ ড্যাশবোর্ড তৈরি করেন, অথবা একজন নবাগত সাধারণ স্ক্রিপ্ট যা মৌলিক কোষ গণনা করে, তাতে কিছু আসে যায় না। পরিষ্কার, বাগ-মুক্ত কোড লিখতে শিখতে এই সহজ প্রোগ্রামিং কৌশলগুলি অনুসরণ করুন।





VBA দিয়ে শুরু করা

VBA আপনার জন্য সব ধরণের ঝরঝরে জিনিস করতে পারে। ম্যাক্রো লেখা থেকে যা শীট পরিবর্তন করে VBA স্ক্রিপ্ট ব্যবহার করে এক্সেল স্প্রেডশীট থেকে ইমেল পাঠানো আপনার উৎপাদনশীলতার খুব কম সীমা আছে।

যদি আপনি Excel- এ VBA- এ প্রোগ্রাম না করে থাকেন তাহলে আপনাকে আপনার Excel প্রোগ্রামে ডেভেলপার টুলস সক্ষম করতে হবে। ভাল খবর হল, বিকাশকারী সরঞ্জামগুলি সক্ষম করা আসলে বেশ সহজ। শুধু যান ফাইল > বিকল্প এবং তারপর ফিতা কাস্টমাইজ করুন । শুধু সরান বিকাশকারী বাম ফলক থেকে ডানদিকে ট্যাব।



চেকবক্সে এই ট্যাবটি সক্ষম আছে তা নিশ্চিত করুন, এবং এখন ডেভেলপার ট্যাব আপনার এক্সেল মেনুতে উপস্থিত হবে।

এখান থেকে কোড এডিটর উইন্ডোতে প্রবেশের সবচেয়ে সহজ উপায় হল কোড দেখুন নীচে বোতাম নিয়ন্ত্রণ করে ডেভেলপার মেনুতে।





আপনি এখন VBA কোড লিখতে প্রস্তুত! এই ট্যাবটি যেখানে আপনি VBA এর পাশাপাশি ব্যবহার করতে পারবেন এক্সেলে রেকর্ডিং ম্যাক্রো । এখন যেহেতু এক্সেল কাজ করার জন্য প্রস্তুত, আসুন কিছু সাধারণ ভুল এড়িয়ে চলি, এবং সেগুলি প্রতিরোধ করার উপায়।

1. ভয়াবহ পরিবর্তনশীল নাম

এখন যেহেতু আপনি কোড উইন্ডোতে আছেন, এখন সময় এসেছে ভিবিএ কোড লেখা শুরু করার। বেশিরভাগ প্রোগ্রামের প্রথম গুরুত্বপূর্ণ ধাপ, এটি VBA বা অন্য কোন ভাষায় হোক না কেন, আপনার ভেরিয়েবলগুলি সংজ্ঞায়িত করছে। ভেরিয়েবলের সঠিকভাবে নামকরণ না করা একটি নতুন প্রোগ্রামিং ভুল যা নতুন ডেভেলপাররা করে।





হোম স্ক্রিনে পপ আপ বিজ্ঞাপন

আমার কয়েক দশক ধরে কোড লেখার সময়, আমি অনেক চিন্তাধারার মধ্যে এসেছি যখন পরিবর্তনশীল নামকরণ কনভেনশনের কথা আসে এবং কিছু নিয়ম কঠিনভাবে শিখেছি। পরিবর্তনশীল নাম তৈরির জন্য এখানে কিছু দ্রুত টিপস দেওয়া হল:

  • তাদের যতটা সম্ভব সংক্ষিপ্ত করুন।
  • তাদের যথাসম্ভব বর্ণনামূলক করুন।
  • ভেরিয়েবল টাইপ (বুলিয়ান, ইন্টিজার, ইত্যাদি ...) দিয়ে তাদের মুখোমুখি করুন।

এখানে একটি প্রোগ্রাম থেকে একটি নমুনা স্ক্রিনশট যা আমি প্রায়ই পিসি তথ্য সংগ্রহ করতে এক্সেল থেকে WMIC উইন্ডোজ কল করতে ব্যবহার করি।

যখন আপনি মডিউল বা অবজেক্টের মধ্যে একটি ফাংশনের ভিতরের ভেরিয়েবল ব্যবহার করতে চান (আমি নিচে এটি ব্যাখ্যা করব), তখন আপনাকে ঘোষণাকে প্রিফেস করে একটি 'পাবলিক' ভেরিয়েবল হিসাবে ঘোষণা করতে হবে পাবলিক । অন্যথায়, ভেরিয়েবলগুলি শব্দের সাথে প্রিফেক্স করে ঘোষণা করা হয় কোনটিই নয়

আপনি দেখতে পাচ্ছেন, যদি ভেরিয়েবলটি একটি পূর্ণসংখ্যা হয় তবে এটির সাথে পূর্বনির্ধারিত int । যদি এটি একটি স্ট্রিং হয়, তাহলে পৃ । এটি একটি ব্যক্তিগত পছন্দ যা আপনি প্রোগ্রামিং করার সময় পরে সাহায্য করে কারণ আপনি সর্বদা জানতে পারবেন যে ভেরিয়েবলটি কী ধরনের ডেটা রাখে নামটি দেখে।

এছাড়াও, আপনার এক্সেল ওয়ার্কবুকের শীটগুলির নাম নিশ্চিত করুন।

এইভাবে, যখন আপনি আপনার এক্সেল ভিবিএ কোডে শীটের নাম উল্লেখ করেন, আপনি এমন একটি নাম উল্লেখ করছেন যা বোধগম্য। উপরের উদাহরণে, আমার একটি শীট আছে যেখানে আমি নেটওয়ার্ক তথ্য টানছি, তাই আমি শীটটিকে 'নেটওয়ার্ক' বলি। যে কোন সময় আমি নেটওয়ার্ক শীট রেফারেন্স করতে চাই, আমি শীট নম্বরটি কী তা না দেখে তা দ্রুত করতে পারি।

2. লুপিং এর পরিবর্তে ব্রেকিং

নতুন VBA প্রোগ্রামারদের সবচেয়ে সাধারণ সমস্যাগুলির মধ্যে একটি হল যখন তারা কোড লিখতে শুরু করে তখন লুপগুলির সাথে সঠিকভাবে আচরণ করা হয়।

এক্সেল -এ লুপিং খুবই সাধারণ কারণ প্রায়ই আপনি একটি সম্পূর্ণ সারি বা একটি কলামের নিচে ডেটা মানগুলি প্রক্রিয়াকরণ করছেন, তাই সেগুলি সব প্রক্রিয়া করার জন্য আপনাকে লুপ করতে হবে।

একটি নির্দিষ্ট শর্ত সত্য হলে নতুন প্রোগ্রামাররা প্রায়ই একটি লুপ (VBA for loops বা VBA Do while loops) থেকে বেরিয়ে আসতে চায়।

এই পদ্ধতির একটি উদাহরণ VBA লুপ ভাঙ্গার জন্য ব্যবহৃত হচ্ছে।

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

নতুন প্রোগ্রামাররা এই পদ্ধতিটি গ্রহণ করে কারণ এটি সহজ। চেষ্টা করুন এবং স্পষ্টভাবে একটি লুপ ভঙ্গ এড়ান।

প্রায়শই না, সেই 'বিরতির' পরে যে কোডটি আসে তা প্রক্রিয়া করার জন্য গুরুত্বপূর্ণ। আপনি যেখানে অর্ধেকের মধ্যে একটি লুপ ছাড়তে চান সেই পরিস্থিতিগুলি পরিচালনা করার জন্য একটি অনেক পরিষ্কার এবং আরো পেশাদারী উপায় হল VBA while স্টেটমেন্টের মতো কিছুতে সেই প্রস্থান শর্তটি অন্তর্ভুক্ত করা।

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

এটি আপনার কোডের একটি যৌক্তিক প্রবাহের অনুমতি দেয়। এখন কোডটি লুপ হয়ে থামবে এবং এটি 6 এ পৌঁছালে বন্ধ হয়ে যাবে।

3. অ্যারে ব্যবহার না করা

আরেকটি আকর্ষণীয় ভুল যা নতুন ভিবিএ প্রোগ্রামারগণ গণনা প্রক্রিয়ার সময় সারি এবং কলামের মাধ্যমে ফিল্টার করা অসংখ্য নেস্টেড লুপের ভিতরে সবকিছু প্রক্রিয়া করার চেষ্টা করছেন।

এটি বড় পারফরম্যান্সের সমস্যাও হতে পারে। একটি কলামের মাধ্যমে লুপ করা এবং প্রতিবারের মানগুলি বের করা আপনার প্রসেসরের একটি হত্যাকারী। সংখ্যার দীর্ঘ তালিকা হ্যান্ডেল করার আরও কার্যকর উপায় হল একটি অ্যারে ব্যবহার করা।

আপনি যদি আগে কখনো কোনো অ্যারে ব্যবহার না করেন, তাহলে ভয় পাবেন না। একটি আইস কিউব ট্রে হিসাবে একটি অ্যারে কল্পনা করুন যেখানে একটি নির্দিষ্ট সংখ্যক 'কিউব' আপনি তথ্য রাখতে পারেন। কিউব সংখ্যা 1 থেকে 12, এবং এইভাবে আপনি তাদের মধ্যে 'তথ্য' রাখেন।

আপনি টাইপ করে সহজেই একটি অ্যারে সংজ্ঞায়িত করতে পারেন Dim arrMyArray (12) পূর্ণসংখ্যা হিসাবে

কিভাবে ইমেইল থেকে আইপি ঠিকানা পাবেন

এটি একটি 'ট্রে' তৈরি করে যা আপনার জন্য 12 টি স্লট উপলব্ধ।

অ্যারে ছাড়া সারি লুপিং কোডটি দেখতে কেমন হতে পারে তা এখানে:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

এই উদাহরণে, কোডটি পরিসরের প্রতিটি একক কোষের মাধ্যমে প্রক্রিয়াকরণ করছে এবং তাপমাত্রা গণনা করছে।

যদি আপনি এই একই মানগুলির উপর অন্য কিছু গণনা করতে চান তবে প্রক্রিয়াটি জটিল হবে। আপনাকে এই কোডটি নকল করতে হবে, এই সমস্ত কোষের মাধ্যমে প্রক্রিয়া করতে হবে এবং আপনার নতুন গণনা করতে হবে। সব এক পরিবর্তনের জন্য!

একটি অ্যারে ব্যবহার করে এখানে একটি ভাল উদাহরণ। প্রথমে, অ্যারে তৈরি করা যাক।

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

দ্য x-1 অ্যারে এলিমেন্টের দিকে নির্দেশ করার জন্য শুধুমাত্র প্রয়োজন কারণ For লুপ 1 থেকে শুরু হয়।

এখন আপনার কাছে অ্যারে আছে বিষয়বস্তুগুলি প্রক্রিয়া করা খুব সহজ।

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

এই উদাহরণটি পুরো সারি অ্যারের মধ্য দিয়ে যায় ( ইউবাউন্ড আপনাকে অ্যারেতে ডেটা ভ্যালুর সংখ্যা দেয়), তাপমাত্রা গণনা করে, এবং তারপর এটি অন্য অ্যারে নামক arrMyTemps

4. অনেক রেফারেন্স ব্যবহার করে

আপনি সম্পূর্ণরূপে ভিজ্যুয়াল বেসিক বা VBA তে প্রোগ্রামিং করছেন কিনা, আপনাকে কিছু বৈশিষ্ট্য অ্যাক্সেস করতে 'রেফারেন্স' অন্তর্ভুক্ত করতে হবে।

রেফারেন্সগুলি 'লাইব্রেরি'র মতো যা কার্যকারিতা দ্বারা পূর্ণ যা আপনি যদি ফাইলটি সক্ষম করেন তবে আপনি ট্যাপ করতে পারেন। আপনি ক্লিক করে ডেভেলপার ভিউতে রেফারেন্স খুঁজে পেতে পারেন সরঞ্জাম মেনুতে এবং তারপর ক্লিক করুন তথ্যসূত্র

এই উইন্ডোতে আপনি যা পাবেন তা হল আপনার বর্তমান VBA প্রকল্পের জন্য বর্তমানে নির্বাচিত সব রেফারেন্স।

আপনার এই তালিকাটি পরীক্ষা করা উচিত কারণ অপ্রয়োজনীয় রেফারেন্স সিস্টেমের সম্পদ নষ্ট করতে পারে। আপনি যদি কোন এক্সএমএল ফাইল ম্যানিপুলেশন ব্যবহার না করেন, তাহলে মাইক্রোসফট এক্সএমএল কেন নির্বাচিত রাখবেন? আপনি যদি কোন ডাটাবেসের সাথে যোগাযোগ না করেন, তাহলে মাইক্রোসফট ডিএও ইত্যাদি সরান।

যদি আপনি নিশ্চিত না হন যে এই নির্বাচিত রেফারেন্সগুলি কী করে, টিপুন F2 এবং আপনি অবজেক্ট এক্সপ্লোরার দেখতে পাবেন। এই উইন্ডোর শীর্ষে, আপনি ব্রাউজ করার জন্য রেফারেন্স লাইব্রেরি চয়ন করতে পারেন।

একবার নির্বাচিত হলে, আপনি সমস্ত বস্তু এবং উপলভ্য ফাংশন দেখতে পাবেন, যা সম্পর্কে আপনি আরও জানতে ক্লিক করতে পারেন।

উদাহরণস্বরূপ, যখন আমি ডিএও লাইব্রেরিতে ক্লিক করি তখন এটি দ্রুত স্পষ্ট হয়ে যায় যে এটি ডাটাবেসের সাথে সংযোগ স্থাপন এবং যোগাযোগের বিষয়ে।

আপনার প্রোগ্রামিং প্রজেক্টে আপনি যে রেফারেন্স ব্যবহার করেন তার সংখ্যা কমানো শুধুই ভালো এবং আপনার সামগ্রিক অ্যাপ্লিকেশনটিকে আরও দক্ষতার সাথে চালাতে সাহায্য করবে।

কারো ফেসবুক ফটো ডাউনলোড করুন

এক্সেল VBA তে প্রোগ্রামিং

প্রকৃতপক্ষে এক্সেলে কোড লেখার সম্পূর্ণ ধারণা অনেক লোককে ভয় দেখায়, কিন্তু এই ভয় আসলেই প্রয়োজনীয় নয়। অ্যাপ্লিকেশনগুলির জন্য ভিজ্যুয়াল বেসিক একটি খুব সহজ ভাষা, এবং যদি আপনি উপরে উল্লিখিত মৌলিক সাধারণ অনুশীলনগুলি অনুসরণ করেন, তাহলে আপনি নিশ্চিত হবেন যে আপনার কোডটি পরিষ্কার, দক্ষ এবং সহজে বোঝা যায়।

যদিও সেখানে থামবেন না। একটি দিয়ে এক্সেল দক্ষতার একটি শক্তিশালী ভিত্তি তৈরি করুন নতুনদের জন্য VBA টিউটোরিয়াল । তারপর আপনার স্প্রেডশীটগুলিকে স্বয়ংক্রিয় করতে সাহায্য করার জন্য সম্পদের সাহায্যে VBA এবং ম্যাক্রো সম্পর্কে শিখতে থাকুন।

শেয়ার করুন শেয়ার করুন টুইট ইমেইল এটি কি উইন্ডোজ 11 এ আপগ্রেড করার যোগ্য?

উইন্ডোজ নতুন করে ডিজাইন করা হয়েছে। কিন্তু এটা কি আপনাকে উইন্ডোজ 10 থেকে উইন্ডোজ 11 এ স্থানান্তরিত করার জন্য যথেষ্ট?

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রমোদ
  • প্রোগ্রামিং
  • প্রোগ্রামিং
  • ভিজ্যুয়াল বেসিক প্রোগ্রামিং
  • মাইক্রোসফট এক্সেল
লেখক সম্পর্কে অ্যান্থনি গ্রান্ট(40 নিবন্ধ প্রকাশিত)

অ্যান্থনি গ্রান্ট একজন ফ্রিল্যান্স লেখক যা প্রোগ্রামিং এবং সফটওয়্যারকে কভার করে। প্রোগ্রামিং, এক্সেল, সফটওয়্যার এবং টেকনোলজিতে তিনি একজন কম্পিউটার সায়েন্স প্রধান।

অ্যান্থনি গ্রান্ট থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন