Computer Programming Constants এবং Static Variables গাইড ও নোট

387

VBA তে Constants এবং Static Variables

VBA (Visual Basic for Applications) তে Constants এবং Static Variables দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা কোডের কার্যকারিতা উন্নত করতে ব্যবহৃত হয়। এগুলোর মধ্যে প্রধান পার্থক্য হলো এগুলোর মানের পরিবর্তনযোগ্যতা এবং তাদের জীবনের পরিসীমা (lifetime)।

1. Constants (কনস্ট্যান্টস)

Constants হলো এমন ভেরিয়েবল যার মান একবার নির্ধারিত হলে সেটি পরিবর্তন করা যায় না। সাধারণত এমন মানগুলোর জন্য কনস্ট্যান্ট ব্যবহার করা হয় যেগুলো কোডের যেকোনো স্থানে স্থির থাকে। কনস্ট্যান্টের ব্যবহার কোডের পাঠযোগ্যতা বাড়ায় এবং এর মাধ্যমে আপনার কোড আরও নির্ভুল হয়।

Constants তৈরি করার পদ্ধতি:

  1. Const কিওয়ার্ড ব্যবহার করে কনস্ট্যান্ট তৈরি করা হয়।

    উদাহরণ:

    Const PI As Double = 3.14159
    Const MAX_USERS As Integer = 100

    উপরের কোডে:

    • PI একটি কনস্ট্যান্ট যার মান 3.14159
    • MAX_USERS একটি কনস্ট্যান্ট যার মান 100
  2. কনস্ট্যান্টের মান নির্ধারণ একবারই করা যায়। কোডে এর মান পরিবর্তন করা যাবে না।

Constants ব্যবহার করার উদাহরণ:

Sub CalculateCircleArea()
    Const PI As Double = 3.14159
    Dim radius As Double
    Dim area As Double

    radius = 5
    area = PI * radius * radius
    MsgBox "Circle Area: " & area
End Sub

এখানে, PI একটি কনস্ট্যান্ট হিসেবে ব্যবহৃত হয়েছে এবং কোডের যেকোনো অংশে এর মান পরিবর্তন করা যাবে না।

Constants এর সুবিধা:

  • পাঠযোগ্যতা: কনস্ট্যান্ট ব্যবহার কোডের পাঠযোগ্যতা এবং বুঝতে সুবিধা দেয়।
  • নির্ভুলতা: মান পরিবর্তন না হওয়া নিশ্চিত করে।
  • পরিবর্তনযোগ্যতা: কেবলমাত্র একবার কনস্ট্যান্টের মান সেট করা হয়, তাই কোডে যেকোনো স্থানে এর মান ব্যবহার করা নিরাপদ।

2. Static Variables (স্ট্যাটিক ভেরিয়েবলস)

Static Variables হল এমন ভেরিয়েবল, যার মান একটি সাবরুটিন বা ফাংশনে একবার নির্ধারণ করা হলে, পরবর্তী সাবরুটিন বা ফাংশন কলেও তার মান অপরিবর্তিত থাকে। সাধারণত Static Variables ব্যবহৃত হয় যখন আপনি একটি ভেরিয়েবলের মান সংরক্ষণ করতে চান যা কোনো ফাংশন বা সাবরুটিনের বাইরেও প্রযোজ্য।

Static Variables তৈরি করার পদ্ধতি:

  1. Static কিওয়ার্ড ব্যবহার করে স্ট্যাটিক ভেরিয়েবল তৈরি করা হয়।

    উদাহরণ:

    Sub CountCalls()
        Static counter As Integer
        counter = counter + 1
        MsgBox "This subroutine has been called " & counter & " times."
    End Sub

    এখানে, counter একটি স্ট্যাটিক ভেরিয়েবল হিসেবে ব্যবহৃত হয়েছে, যার মান সাবরুটিনের প্রতিটি কলের পরে অপরিবর্তিত থাকে এবং পরবর্তী কলের সময় পূর্ববর্তী মান সংরক্ষণ করে রাখে।

Static Variables এর উদাহরণ:

Sub TrackLoginAttempts()
    Static attempts As Integer
    attempts = attempts + 1
    MsgBox "Login Attempt: " & attempts
End Sub

এখানে, attempts একটি স্ট্যাটিক ভেরিয়েবল হিসেবে কাজ করছে, এবং এটি সাবরুটিনের প্রতিটি কলের মধ্যে তার মান সংরক্ষণ করে রাখে, যাতে পরবর্তী কলের সময় মানটি আপডেট হয়।

Static Variables এর সুবিধা:

  • মান সংরক্ষণ: ফাংশন বা সাবরুটিনের মধ্যে স্ট্যাটিক ভেরিয়েবল তার মান ধরে রাখে, যা সাবরুটিন পুনরায় কল করার পরেও অপরিবর্তিত থাকে।
  • রিসোর্স ব্যবস্থাপনা: কোডের মধ্যেকার কিছু মান এমনভাবে সংরক্ষণ করা যায়, যাতে বারবার পরিবর্তন করতে না হয়।
  • অপারেশন ওভারহেড কমানো: একবার মান নির্ধারণ হলে এটি বারবার নির্ধারণ করতে হয় না, যা কোডের কার্যকারিতা বাড়ায়।

Constants এবং Static Variables এর মধ্যে পার্থক্য

বিষয়ConstantsStatic Variables
মান পরিবর্তনযোগ্যতাএকবার সেট করা হলে পরিবর্তন করা যায় নাএকবার সেট করা হলে পরবর্তী কলেও মান বজায় থাকে
ব্যবহারএমন স্থির মান যা কোডের বিভিন্ন অংশে ব্যবহার করা হয়ফাংশন বা সাবরুটিনের মধ্যে মান সংরক্ষণ করা হয়
রানটাইম লাইফপ্রোগ্রাম চলাকালীন একবারেই সেট করা হয়ফাংশন বা সাবরুটিনের মধ্যে রানটাইম লাইফ থাকে
ফাংশন/সাবরুটিনে প্রভাবফাংশন বা সাবরুটিনের বাইরে ব্যবহৃত হয়শুধুমাত্র সাবরুটিন বা ফাংশনের মধ্যে কার্যকরী
মানের পরিবর্তনকেবল একবার মান সেট করা যায় এবং পরে পরিবর্তন হয় নাপ্রতি ফাংশন কলের পরে মান পরিবর্তিত হতে পারে

উপসংহার

  • Constants হলো একাধিক স্থানে ব্যবহারের জন্য একবার নির্ধারিত মান, যা কোডের পাঠযোগ্যতা এবং নির্ভুলতা বাড়ায়।
  • Static Variables হলো এমন ভেরিয়েবল যা একটি সাবরুটিন বা ফাংশনে একবার নির্ধারণ করা হলে, পরবর্তী কলেও তার মান সংরক্ষিত থাকে এবং পুনরায় ব্যবহার করা যায়।

এই দুটি বৈশিষ্ট্যই VBA কোডে কার্যকারিতা এবং নির্ভুলতা বাড়াতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...