Module
Contents
Index 🔎︎

# প্রসিজার এবং ফাংশন ব্যবহার করা হচ্ছে

নিচের বিবরণগুলো LibreOffice বেসিকে প্রাথমিক প্রসিজার এবং ফাংশনের ব্যবহার ব্যাখ্যা করে।

যখন আপনি একটি নতুন মডিউল তৈরি করেন, তখন LibreOffice বেসিক দ্বারা স্বয়ংক্রিয়ভাবে "Main" নামের একটি SUB সন্নিবেশ করানো হয়। পূর্বনির্ধারিত নামটির ক্রম অথবা একটি LibreOffice বেসিক প্রকল্পের শুরুর বিন্দু সম্পর্কিত কোন কাজ নেই। আপনি নিরাপদে এই SUB এর পুনরায় নামকরণ করতে পারেন।

Some restrictions apply for the names of your public variables, subs, and functions. You must not use the same name as one of the modules of the same library.

প্রসিজার (SUBS) এবং ফাংশন (FUNCTIONS) আপনাকে একটি প্রোগ্রাম লজিক্যাল অংশে ভাগ করে একটি কাঠামোগত সারসংক্ষেপ সমন্বয় করতে সহায়তা করে।

প্রসিজার এবং ফাংশনের একটি সুবিধা হলো, আপনি একবার টাস্ক কম্পোনেন্ট সহ একটি প্রোগ্রাম কোড ডেভেলপ করলে, অণ্য একটি প্রকল্পে এই কোড ব্যবহার করতে পারেন।

## প্রসিজার (SUB) এবং ফাংশন (FUNCTION) এ ভেরিয়েবল পাস করা হচ্ছে

প্রসিজার এবং ফাংশন উভয়েই ভেরিয়েবল পাস করা যায়। প্যারামিটার গ্রহণ করতে SUB অথবা FUNCTION অবশ্যই ডিক্লেয়ার করতে হবে:

    Sub SubName(Parameter1 As Type, Parameter2 As Type,...)

    প্রোগ্রাম কোড

    End Sub

SUB টিকে নিম্নের সিনট্যাক্স ব্যবহার করার নির্দেশ দেয়া হয়:

    SubName(Value1, Value2,...)

যে প্যারামিটারগুলো SUB পাস করে যায় সেগুলোকে অবশ্যই SUB ডিক্লেয়ারেশনে উল্লেখিত প্যারামিটারের সাথে মানানসই হতে হবে।

একই প্রক্রিয়া FUNCTIONS এ প্রয়োগ করা হয়। অতিরিক্ত হিসেবে, ফাংশন সবসময় একটি ফাংশন ফলাফল প্রদান করে। ফাংশনের নামে প্রদান মান বরাদ্দ করে ফাংশনের ফলাফল নির্ধারণ করা হয়।

    Function FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type

    প্রোগ্রাম কোড

    FunctionName=Result

    End Function

FUNCTION টি নিম্নের সিনট্যাক্স ব্যবহার করে কল করা হয়:

    Variable=FunctionName(Parameter1, Parameter2,...)

আপনি একটি প্রসিজার অথবা ফাংশন কল করতে যথার্থ নামও ব্যবহার করতে পারেন:
Library.Module.Macro()
যেমন, Gimmicks লাইব্রেরি থেকে স্বয়ংক্রিয়পাঠ্য ম্যাক্রো কল করতে, নিচের কমান্ডটি ব্যবহার করুন:
Gimmicks.AutoText.Main()

## মান অথবা রেফারেন্স এর মাধ্যমে ভেরিয়েবল পাস করা হচ্ছে

একটি SUB অথবা FUNCTION এ প্যারামিটার হয় রেফারেন্স অথবা মান দ্বারা পাস করা যায়। অন্যভাবে উল্লেখিত না থাকলে, একটি প্যারামিটার সবসময় রেফারেন্স দ্বারা পাস করা হয়। এর অর্থ হলো, একটি প্যারামিটার একটি SUB অথবা FUNCTION দ্বারা প্রাপ্ত হয় এবং এর মান পড়তে এবং পরিবর্তন করতে পারে।

যদি আপনি মান দ্বারা একটি প্যারামিটার পাস করতে চান তাহলে আপনি একটি SUB অথবা FUNCTION কল করার সময় প্যারামিটারের সম্মুখে "ByVal" কীওয়ার্ডটি সন্নিবেশ করান, উদাহরণস্বরূপ:

    Result = Function(ByVal Parameter)

এই ক্ষেত্রে, প্যারামিটারের প্রকৃত বিষয়বস্তু FUNCTION দ্বারা পরিবর্তন করা যাবেনা যেহেতু এটি শুধুমাত্র মান নিয়ে কাজ করে এবং প্যারামিটার নিয়ে নয়।

## ভেরিয়েবলের ব্যাপ্তি

একটি SUB অথবা FUNCTION এর মধ্যে একটি ভেরিয়েবল নির্ধরিত থাকে, এবং কেবলমাত্র প্রসিজার থেকে প্রস্থান করা না করা পর্যন্ত কার্যকর থাকে। একটি "লোক্যাল" ভেরিয়েবল হিসেবে পরিচিত। অনেক ক্ষেত্রে, আপনার সব প্রসিজারে, সব লাইব্রেরির প্রতিটি মডিউলে, অথবা একটি SUB অথবা FUNCTION প্রস্থান করার পরে ভেরিয়েবল কার্যকর করা প্রয়োজন।

### SUB অথবা FUNCTION এর বাইরে ভেরিয়েবল ডিক্লেয়ার করা হচ্ছে

    GLOBAL VarName As TYPENAME

যতক্ষন LibreOffice সেশন থাকবে ততক্ষন ভেরিয়েবলটি কার্যকর থাকবে।

    PUBLIC VarName As TYPENAME

ভেরিয়েবলটি সব মডিউলে কার্যকর।

    PUBLIC VarName As TYPENAME

ভেরিয়েবলটি শুধু এই মডিউলে কার্যকর।

    PUBLIC VarName As TYPENAME

ভেরিয়েবলটি শুধু এই মডিউলে কার্যকর।

### প্রাইভেট ভেরিয়েবলের উদাহরণ

CompatibilityMode(true) নির্ধারণ করার মাধ্যমে মডিউলের মধ্যে প্রাইভেট করার জন্য প্রাইভেট ভেরিয়েবল কার্যকরী করতে হবে।

    ' ***** Module1 *****

    Private myText As String

    Sub initMyText

        myText = "Hello"

        print "in module1 : ", myText

    End Sub

    ' ***** Module2 *****

    'Option Explicit

    Sub demoBug

        CompatibilityMode( true )

        initMyText

        ' ফাঁকা স্ট্রিং প্রদান করে

        ' (অথবা Option Explicit এর জন্য ত্রুটি সংঘটিত হয়)

        print "Now in module2 : ", myText

    End Sub

### একটি SUB অথবা FUNCTION হতে প্রস্থানের পর ভেরিয়েবলের বিষয়বস্তু সংরক্ষণ করা হচ্ছে

    STATIC VarName As TYPENAME

পরবর্তী সময় FUNCTION অথবা SUB সন্নিবেশ করা না পর্যন্ত ভেরিয়েবল এর মান বজায় থাকে। ডিক্লেয়ারেশনটি অবশ্যই একটি SUB অথবা FUNCTION এ থাকতে হবে।

## একটি FUNCTION প্রদান মানের ধরন সুনির্দিষ্টভাবে ব্যাখ্যা করা হচ্ছে

ভেরিয়েবলের সাথে As, ফাংশনের নামের পরে একটি টাইপ-ডিক্লেয়ারেশন অক্ষর অথবা "As" দ্বারা নির্দেশিত টাইপ এবং ফাংশন প্রদান মানের টাইপ নির্ধারণ করার জন্য প্যারামিটারের শেষে বিদ্যমান সংশ্লিষ্ট কীওয়ার্ড অন্তর্ভুক্ত করা হয়।

    Function WordCount(WordText As String) As Integer