আমাদের আজকের আলোচনার বিষয় বিভিন্ন প্রকার ভেরিয়েবল ও কনস্ট্যান্ট – যা অধ্যায় ৩ ”ভিজ্যুয়াল বেসিক ভেরিয়েবল, কনস্ট্যান্ট ও কীওয়ার্ড” এর অন্তর্ভুক্ত। বর্তমান বিশ্বের সর্বাধুনিক প্রযুক্তি হচ্ছে কম্পিউটার প্রযুক্তি। কারণ শিল্পকারখানা, গবেষণা, শিক্ষাপ্রতিষ্ঠান, চিকিৎসাশাস্ত্র ইত্যাদি সকল ক্ষেত্রই আজ কম্পিউটার অটোমেটেড। কম্পিউটার অটোমেশনের সঙ্গে কম্পিউটার প্রোগ্রামিং ও প্রোগ্রামিং লেখার জন্য প্রোগ্রামিং ল্যাংগুয়েজ অত্যন্ত গুরুত্বপূর্ণ।
তাই শিক্ষা ও গবেষণার জন্য প্রোগ্রামিং ল্যাংগুয়েজ অধ্যয়ন একটি অতি আবশ্যকীয় বিষয়। বিষয়টি অত্যন্ত গুরুত্বসহ বিবেচনা করে বর্তমানে কারিগরি শিক্ষার সকল টেকনোলজিতে কম্পিউটার প্রোগ্রামিং ল্যাংগুয়েজ বিষয়কে আবশ্যিক করা হয়েছে ।

Table of Contents
বিভিন্ন প্রকার ভেরিয়েবল ও কনস্ট্যান্ট
ভেরিয়েবল
একজন প্রোগ্রামার কাজ করার সুবিধার্থে মেমোরিতে ডাটা সংরক্ষণের জন্য ভোট-এর আড়া ব্যবহার না করে Cell-এর একটা নাম দেন এবং ঐ নামের অধীনে ডাটা সংরক্ষণ করেন। সুতরাং ভেরিয়েবল হচ্ছে এমন তারা – Container-এর ন্যায় যাতে মেমোরি অ্যাড্রেসের পরিবর্তে কোন নামের অধীনে পরিবর্তনশীল ডাটা সংরক্ষণ করা খায়।
ভেরিয়েবলের প্রকারভেদ
ডাটা টাইপের উপর ভিত্তি করে ভিজ্যুয়াল বেসিকের ভেরিয়েবলসে
নিম্নলিখিত ভাগে ভাগ করা যায়। যথাঃ
- বুলিয়ান (Boolean) টাইপ ভেরিয়েবল
- বাইট (Byte) টাইপ ভেরিয়েবল
- কারেন্সি (Currency) টাইপ ভেরিয়েবল
- তারিখ (Date) টাইপ ভেরিয়েবল
- ডাবল (Double) টাইপ ভেরিয়েবল
- ইন্টিজার (Integer) টাইপ ভেরিয়েবল
- লং (Long) টাইপ ভেরিয়েবল
- অবজেক্ট (Object) টাইপ ভেরিয়েবল
- সিঙ্গেল (Single) টাইপ ভেরিয়েবল
- স্ট্রিং (String) টাইপ ভেরিয়েবল এবং
- ভেরিয়েন্ট (Variant) টাইপ ভেরিয়েবল ইত্যাদি।
ভেরিয়েবলের প্রকারভেদ (Types of Variable) :
বুলিয়ান টাইপ:
যদি প্রোগ্রামের কোন ভেরিয়েবলে কেবল True (1) অথবা False (0) ধরনের ডাটা সংরক্ষণ করতে হয়, তাহলে আমরা সেই ভেরিয়েবলের টাইপ হিসাবে Boolean টাইপ ব্যবহার করতে পারি।
সিনট্যাক্স বা গঠন:
Dim BankDefaulter As Boolean
এই টাইপের ভেরিয়েবলের জন্য মেমোরীতে ২ বাইট বা ১৬ বিট জায়গা ব্যবহৃত হয়।
বাইট (Byte) টাইপঃ
যদি প্রোগ্রামের কোন ভেরিয়েবলে বাইনারী ডাটা সংরক্ষণ করতে হয়, তাহলে আমরা সেই ভেরিয়েবলের টাইপ হিসাবে Byin টাইপটা ব্যবহার করতে পারি।
সিনট্যাক্স বা গঠন:
Dim test As Byte
এই ভেরিয়েবলে ০ থেকে ২৫৫ এর মধ্যবর্তী যে কোন সংখ্যা সংরক্ষণ করা যাবে।।
কারেন্সি (Currency) টাইপ:
প্রোগ্রামে টাকা-পয়সা সংক্রান্ত তথ্য সংরক্ষণের জন্য এই টাইপের ভেরিয়েবল ব্যবহার করা যায়।
সিনট্যাক্স বা গঠন:
Dim getMoney As Currency
এই টাইপের ভেরিয়েবলের জন্য মেমোরীতে ৮ বাইট বা ৬৪ বিট জায়গা ব্যবহৃত হয় এবং এতে-922,337, 203,685,477.5808 থেকে 922,337, 203,685, 477.5807-এর মধ্যবর্তী যে কোন সংখ্যা সংরক্ষণ করা যায়। অর্থাৎ, এই টাইপের ভেরিয়েবলে দশমিকের বামদিকে ১৫ ঘর এবং ডানদিকে ৪ ঘর পর্যন্ত সংখ্যা সংরক্ষণ করা যায়। তবে উল্লেখ্য যে, ভেরিয়েবলের মান নির্ধারণ করার সময় কমা ব্যবহার করা যাবে না। যেমন, getMoney 123,456,234.4545 এভাবে মান নির্ধারণ করলে প্রোগ্রাম এরর দেখাবে।
তারিখ (Date) টাইপ:
প্রোগ্রামে যদি আমাদের তারিখ কিংবা সময় সংরক্ষণের জন্য কোন ভেরিয়েবল দরকার হয়, তাহলে এই টাইপের ভেরিয়েবল ঘোষণা করতে হবে।
সিনট্যাক্স বা গঠন:
Dim BirthDate As Date
Date টাইপের ভেরিয়েবলে তারিখ সংরক্ষণ করতে হলে, তারিখটাকে সাধারণত এই দুই অক্ষরের মধ্যে লিখতে হয়।
তবে এই ভেরিয়েবলে তারিখ এবং সময় দুটোও একসাথে সংরক্ষণ করা যায়। যেমনঃ
BirthDate #01/01/75 05:20:45 PM#
এই ভেরিয়েবলের জন্য মেমোরীতে ৮ বাইট বা ৬৪ বিট ব্যবহৃত হয় এবং এতে 1 January 100 থেকে 31 December
9999 এর মধ্যবর্তী যে কোন তারিখ সংরক্ষণ করা যায়।
ডাবল (Double) টাইপ:
কোন ভেরিয়েবলে দশমিকসহ কোন সংখ্যা সংরক্ষণের জন্য এই টাইপ ব্যবহার করা হয়।
সিনট্যাক্স বা গঠনঃ
Dim getVal As Double
Double টাইপের ভেরিয়েবলের জন্য মেমোরীতে ৮ বাইট বা ৬৪ বিট জায়গা ব্যবহৃত হয় এবং এই টাইপের ভেরিয়েবলে।
1.79769313486232E308 থেকে 4.94065645841247E-324 এর মধ্যবর্তী যে কোন ঋণাত্মক সংখ্যা কিংবা 4.94065645841247E-324 থেকে 1.79769313486232E-308 এর মধ্যবর্তী যে কোন ধনাত্মক সংখ্যা সংরক্ষণ করা যায়।
মূলত প্রোগ্রামে যদি কোন স্থানে দশমিকের পরের সংখ্যার গুরুত্ব বেশি হয়, তাহলে এই টাইপের ভেরিয়েবল ব্যবহার করা যায়।
ইন্টিজার (Integer) টাইপ:
যদি প্রোগ্রামে কোন পূর্ণ সংখ্যা সংরক্ষণ করতে হয়, তাহলে এই টাইপের ভেরিয়েবল ব্যবহার করা যায়।
সিনট্যাক্স বা গঠন।
Dim fileSize As Integer
Integer টাইপের ভেরিয়েবলের জন্য মেমোরীতে ২ বাইট বা ১৬ বিট জায়গা ব্যবহৃত হয় এবং এই টাইপের ভেরিয়েবলে- 32,768 থেকে 32,767 এর মধ্যবর্তী যে কোন সংখ্যা সংরক্ষণ করা যায়। তাই উপরের fileSize ভেরিয়েবলের মান যদি 48480 কিংবা 48.480 নির্ধারণ করা হয়, তাহলে প্রোগ্রামে অপ্রত্যাশিত ফলাফল আসবে।
লং (Long) টাইপ।
এই ভেরিয়েবলও কোন পূর্ণ সংখ্যা সংরক্ষণ করার জন্য ব্যবহার করা হয়। তবে এই টাইপের ভেরিয়েবলে Integer টাইপের চেয়ে বেশি মানের ডাটা সংরক্ষণ করা যায়।
সিনট্যাক্স বা গঠন :
Dim voter Number As Long
Long টাইপের ভেরিয়েবলের জন্য মেমোরীতে ৪ বাইট বা ৩২ ফিট জায়গা ব্যবহৃত হয় এবং এতে -2,147,483,648 থেকে 2,147,483,647 এর মধ্যবর্তী যে কোন পূর্ণ সংখ্যা সংরক্ষণ করা যায়। তবে উল্লেখ্য যে, এই টাইপের ভেরিয়েবলে কোন দশমিক মানসহ সংখ্যা কিংবা উল্লেখিত সীমানার বাইরে কোন সংখ্যা নির্ধারণ করা যায় না এবং ভেরিয়েবলের মান নির্ধারণের সময় কমা ব্যবহার করা যাবে না। যেমন, voter Number এর জন্য 22,147,483,647 এই সংখ্যা নির্ধারণ করলে কম্পাইলার জামে দেখাবে।
অবজেক্ট (Object) টাইপ: প্রোগ্রামে কোন অবজেক্ট সংক্রান্ত ডাটা নিয়ে কাজ করার জন্য এই ভেরিয়েবল ব্যবহার করা হয়। তবে এই ভেরিয়েবল ব্যবহার করার নিয়ম একটু অন্য ধরনের। ধরা যাক, কোন ফর্মে cmdYes এবং cmdNo নামে দুটো কমান্ড বাটন আছে। এই দুটো বাটন নিয়ে কাজ করার জন্য আমরা দুটো object টাইপের ভেরিয়েবল ঘোষণা করতে পারি।
সিনট্যাক্স বা গঠন:
Dim buttonYes As CommandButton
Dim buttonNo As CommandButton
এবার button Yes এবং buttonNo এর মান নিচের মত নির্ধারণ করতে হবে,
Set buttonYes = cmdYes
Set buttonNocmdNo
অর্থাৎ, Object টাইপের ভেরিয়েবলের মান নির্ধারণের জন্য Set নামের রিজার্ভ ওয়ার্ডটা ব্যবহার করা হয়। এভাবে যখন কোন Objec টাইপ ভেরিয়েবলের মান নির্ধারণ করা হয়, তখন প্রোগ্রামের মাধ্যমে সংশ্লিষ্ট অবজেক্ট নিয়ে বিভিন্ন কাজ করা যায়। যেমন, আমরা যদি উপরোক্ত কমান্ড বাটন দুটোর কোন Property যেমন, Caption প্রপার্টি পরিবর্তন করতে চাই, তাহলে তা নিচের মত করা যায়,
buttonYes.Caption = “Yes”
buttonNo.Caption = “No”
এখানে Yes এবং No যথাক্রমে cmdYes এবং cmdNo বাটনের Caption হিসাবে নির্ধারিত হবে। তবে সবসময় যে Se ব্যবহার করতে হবে এমন কোন বাধ্যবাধকতা নেই। যেমনঃ
Dim New Form As New Form1 ‘initiate new instance of Form1. New Form. Show ActiveForm.Print “Now it is” & Format (Now, “Long Time”) এই কোড যদি আমরা কোন MDIForm এর Load ইভেন্ট-এ লিখি, তাহলে MDI উইন্ডোতে Form1 এর মত একটা হয় প্রদর্শিত হবে।
সিঙ্গেল (Single) টাইপঃ
কোন দশমিক সংখ্যাসহ ডাটা সংরক্ষণের জন্য এই টাইপের ভেরিয়েবল ব্যবহার করা যায়।
সিনট্যাক্স বা গঠন:
Dim totalSalary As Single
Single টাইপের ভেরিয়েবলের জন্য মেমোরীতে ৪ বাইট বা ৩২ বিট জায়গা ব্যবহৃত হয় এবং এতে -3.402823E38 থেকে 1.401298E-45 এর মধ্যবর্তী যে কোন ঋণাত্মক কিংবা 1.401298E-45 থেকে 3.402832E38 এর মধ্যবর্তী যে কোন ধনাত্মন floating-point numbers সংরক্ষণ করা যায়।
স্ট্রিং (String) টাইপঃ
যদি প্রোগ্রামের কোন ভেরিয়েবলে String (String হচ্ছে এক বা একাধিক ক্যারেকটারের সমষ্টি, যেমন, নাম ঠিকানা প্রভৃতি, সাধারণত ডবল কোটেশন চিহ্নের মধ্যে লেখা হয়। যেমন, 15.15 হচ্ছে নিউম্যারিক ডাটা কিন্তু “15.15” হচ্ছে স্ট্রিং।) সংরক্ষ করতে হয়, তাহলে আমরা সেই ভেরিয়েবলের টাইপ হিসাবে String ডাটা টাইপ ব্যবহার করতে পারি।
সিনট্যাক্স বা গঠন:
Dim Str As String
Dim BookName As String
String ভেরিয়েবল দু’ধরনের হতে পারে, Variable length যা 2 billion পর্যন্ত Character সংরক্ষণ করতে পারে এক Fixed-length যা সর্বোচ্চ 65536 Character সংরক্ষণ করতে পারে। Fixed-length ঘোষণার নিয়ম হল-
Dim VariableName As String size
উদাহরণ: Dim ProjectCode As String*5
এখানে Project Code নামের String ভেরিয়েবলে সর্বোচ্চ ৫ ক্যারেকটারের স্ট্রিং সংরক্ষণ করা যাবে। স্ট্রিং যদি ৫ অক্ষতে বেশি হয় তাহলে কেবল প্রথম ৫ অক্ষরই এই ভেরিয়েবলে সংরক্ষিত হবে। বাকি অক্ষরগুলো বাদ যাবে। কিন্তু স্ট্রিং যদি ৫ অক্ষরে চেয়ে ছোট হয় তাহলে ভিজ্যুয়াল বেসিক স্বয়ংক্রিয়ভাবে স্পেস সংযোজন করে দিবে।
উল্লেখ্য যে, কম্পিউটারের একেকটা অক্ষর, সংখ্যা বা বিশেষ অক্ষরকে ক্যারেকটার (Character) বলে। যেমন, “Banglades -এই স্ট্রিং-এ ১০ টা ক্যারেকটার আছে। “Hello! @#$&%*()” -এই স্ট্রিং-এ ১৫ টা ক্যারেকটার আছে।)
ভেরিয়েন্ট (Variant) টাইপঃ
প্রোগ্রামে অনেক সময় এমন হয় যে, একই ভেরিয়েবলে বিভিন্ন ধরনের ডাটা সংরক্ষণের প্রয়োজন হতে পারে। এক্ষেত্রে আমরা Variant টাইপের ভেরিয়েবল ব্যবহার করতে পারি।
সিনট্যাক্স বা গঠন
Dim StoreAnyData তাহলে এক্ষেত্রে StoreAnyData ভেরিয়েবলটা স্বয়ংক্রিয়ভাবে Variant টাইপ ভেরিয়েবল হিসাবে ব্যবহৃত হবে। এই ভেরিয়েবলে আমরা এখন যে কোন ডাটা সংরক্ষণ করতে পারবো। যেমন।
Store AnyData 1970″
এখানে StoreAnyData ভেরিয়েবলে 1, 9, 7 ও 5 এই চারটা ক্যারেকটারের একটা স্ট্রিং সংরক্ষণ করা হয়েছে। আবার, StoreAnyData = 45
এক্ষেত্রে StoreAnyData ভেরিয়েবলে 45 সংরক্ষণ করা হয়েছে। তবে,
StoreAnyData = “1975” & 45
এক্ষেত্রে Store Any Data ভেরিয়েবলের সংরক্ষিত ডাটা হচ্ছে 197545.
কনস্ট্যান্ট (Constant) : প্রোগ্রামে ব্যবহৃত অপরিবর্তনীয় কোন সংখ্যা বা String এর অর্থবোধক কোন নামই হচ্ছে কনস্ট্যান্ট (Constant)। প্রোগ্রামের যেখানে এই নাম ব্যবহৃত হবে, প্রোগ্রাম কম্পাইল করার সময় প্রোগ্রামের সেখানে সংশ্লিষ্ট সংখ্যা বাজ String দ্বারা নামটি প্রতিস্থাপিত হবে।
কনস্ট্যান্ট ঘোষণা (Constant Declaration) Constant ঘোষণার নিয়ম হলঃ Const Constantname (As type) = Value
উদাহরণ:
Const Country name As string = “Bangladesh”
Const Birthdate # 31/12/1980 #
Const Passward = “Midas Touch”
Constant declaration এর বেলায় লক্ষ্যনীয় যেঃ
১ । Constant Name লেখার সময় Variable লেখার যাবতীয় নিয়ম অনুসরণ করতে হবে।
২। Constant ঘোষণার সময় Type উল্লেখ না করলেও চলে। কনস্ট্যান্টের প্রকারভেদ (Constant Types):

নিম্নে বিভিন্ন প্রকার Constant নিয়ে আলোচনা করা হলঃ
ইনট্রিনসিক কনস্ট্যান্ট (Intrinsic Constant): যে সকল Constant, Visual Basic এর বিভিন্ন কাজের জন্য পূর্ব থেকেই তৈরি করা আছে সে সফল Constant কে Intrinsic Constant বলে।
উদাহরণ:
Msg Box “Intrinsic Constants Example” Vbok only + Vb information
এখামে Vbok only এবং Vb Information শব্দ দুটো Intrinsic Constants কারণ এ দু’টো শব্দ ব্যবহার করলে কী কাজ হবে Visual Basic পূর্ব থেকেই তা জানে।
সিম্বলিক বা ইউজার ডিফাইন্ড কনস্ট্যান্ট (Symbolic or User Defined Constant):
ভিজ্যুয়াল বেসিক User গণ তাদের প্রয়োজনানুযায়ী যে সকল Constant তৈরি করেন সে সকল Constant কে Symbolic or User Defined Constant বলে।
Symbolic or User defined Constant তৈরির নিয়ম।
Const constantname [As Data type] = Value.
উদাহরণ: Const Pl = 3.1416
User defined Constant আবার দুই প্রকার। যথাঃ Numeric Cosnstant String Constant. Numeric Constant ও আবার বিভিন্ন ধরনের হতে পারে। নিম্নে এদের বর্ণনা দেয়া হলঃ
ইন্টিজার কনস্ট্যান্ট (Integer Constant):
এ ধরনের Constant – 32768 থেকে 32767 এর মধ্যে যে কোন পূর্ণ সংখ্যাই হতে পারে।
উদাহরণ: 20, 50,- 75 ইত্যাদি।
ফিক্সড পয়েন্ট কনস্ট্যান্ট (Fixed Point Constant):
দশমিক সহ যে কোন Positive কিংবা Negative number ই Fixed point Constant হতে পারে।
উদাহরণ: 20.57, 75.30 ইত্যাদি।
ফ্লোটিং পয়েন্ট কনস্ট্যান্ট (Floating Point Constant):
সকল সূচকীয় (১০ এর সুচক হিসেবে) সংখ্যাই (Positive/Negative) হতে পারে Floating point Constant.
উদাহরণ: 7.43E+4=7.43 x 10 = 743000 5.74E-2 ইত্যাদি।
অক্টাল কনস্ট্যান্ট
Octal number বিশিষ্ট Constant কে Octal Constant বলে। সাধারণত Octal Constant হিসেবে & symbol ব্যবহৃত হয়।
উদাহরণ:
& 07453, & 07543 ইত্যাদি।
হেক্সাডেসিমাল কনস্ট্যান্ট (Hexa decimal Constant):
Hexa decimal number বিশিষ্ট Constant কে Hexa decimal Constant বলে। Hexa decimal Constant বুঝানো জন্য সংখ্যার আগে &H ব্যবহার করা হয়।
উদাহরণঃ
&H 573, & H 943A ইত্যাদি।
স্ট্রিং কনস্ট্যান্ট (String Constant):
String সমন্বিত Constant কেই String Constant বলে।
উদাহরণ: “Welcome”, “ABC”, “XYZ” ইত্যাদি।