লিনাক্সে LibreOffice Calc এ কিভাবে একটি ম্যাক্রো তৈরি এবং চালাবেন

LibreOffice হল মূলধারার এবং মালিকানাধীন Microsoft Office Suite-এর জন্য FOSS বিশ্বের উত্তর। শীর্ষস্থানীয় অফিস উত্পাদনশীলতা সফ্টওয়্যার বিকাশকারী এবং অবদানকারীদের দ্বারা তৈরি, এটি একাধিক অপারেটিং সিস্টেমে মাইক্রোসফ্ট অফিসের সম্পূর্ণ প্রতিস্থাপনের প্রস্তাব দেয়।

Microsoft Excel এর সমতুল্য LibreOffice অ্যাপটিকে বলা হয় LibreOffice Calc। এটি অনেকগুলি বৈশিষ্ট্য এবং এক্সেলের মতো একটি ইন্টারফেসের সাথে আসে। অটোমেশনের জন্য ম্যাক্রো বিকাশ এবং চালানোর জন্য এটিতে একটি অন্তর্নির্মিত ম্যাক্রো ইঞ্জিন রয়েছে। যাইহোক, এটি ভিজ্যুয়াল বেসিক সমর্থন করে না, তবে তার নিজস্ব ভাষা সমর্থন করে; LibreOffice বেসিক, প্রোগ্রামিং ম্যাক্রোর জন্য।

LibreOffice স্যুটটি উবুন্টু, ডেবিয়ান, ফেডোরা এবং CentOS সহ বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনে আগে থেকে ইনস্টল করা আছে।

LibreOffice Calc-এ একটি ম্যাক্রো তৈরি এবং চালানো

প্রথমে, আসুন কিছু নমুনা ডেটা সহ একটি ওয়ার্কশীট তৈরি করি।

ম্যাক্রো সংগঠক খুলতে, যান টুলস » ম্যাক্রো » ম্যাক্রো সংগঠিত করুন » LibreOffice বেসিক. এটা খুলবে LibreOffice বেসিক ম্যাক্রো নীচের স্ক্রিনশটে দেখানো উইন্ডোটি।

ম্যাক্রোর জন্য একটি নতুন নাম লিখুন, তারপর উইন্ডোর নীচের ডানদিকে নতুন বোতামে ক্লিক করুন।

আপনার এখন LibreOffice বেসিকের ম্যাক্রো এডিটর স্ক্রীন দেখতে হবে।

আমরা দেখতে পাচ্ছি, ম্যানুয়ালি তৈরি করা ম্যাক্রোগুলি ডিফল্টভাবে "My Macros & Dialogs -> Standard -> Module1" এর অধীনে তৈরি করা হয়েছে।

বর্তমানে দুটি ম্যাক্রো উপস্থিত রয়েছে: একটি প্রধান, যা একটি ডিফল্ট খালি ম্যাক্রো, এবং অন্যান্য পরীক্ষা, আমরা উপরে তৈরি করা ম্যাক্রো। আমরা এখন টেস্ট ম্যাক্রো উন্নত করব।

আমাদের ম্যাক্রো নিম্নলিখিত কাজগুলি করবে:

  • সব মানুষের কোন পেশা লেখক আছে পরীক্ষা করুন
  • একটি নতুন শীট তৈরি করুন
  • নতুন শীটে লেখকদের জন্য সমস্ত এন্ট্রি সরান৷

নিম্নলিখিত আমাদের ম্যাক্রো:

উপ-পরীক্ষা rem পেশাগত লেখক সহ এন্ট্রিগুলিকে নতুন শীটে সরান dim crs(8) অবজেক্ট হিসাবে dim j হিসাবে Integer dim prof হিসাবে অবজেক্ট হিসাবে dim i হিসাবে Integer dim sh হিসাবে অবজেক্ট হিসাবে dim sh2 অবজেক্ট হিসাবে sh = This Component.Sheets(0) crs(0) = sh.getCellRangeByPosition(0, 0, 3, 0) j = 1 এর জন্য i = 1 থেকে 5 x = 1 prof = sh.GetCellByPosition(3, i) rem ভেরিয়েবলে সম্পূর্ণ সারি সংরক্ষণ করুন যদি prof.string = "Writer" তাহলে crs(j) = sh.getCellRangeByPosition(0, i, 3, i) j = j + 1 শেষ হলে এখন একটি নতুন শীট তৈরি করুন এবং এই তথ্যটি সেখানে লিখুন ThisComponent.Sheets.insertNewByName("Writers", 1) sh2 = ThisComponent.Sheets(1) i = 0 না হলেও IsNull(crs(i)) sh2range = sh2.getCellRangeByPosition(0, i, 3, i) sh2range.setDataArray(crs(i).getDataArray) i = i + 1 লুপ এন্ড সাব

আমাকে উপরের ম্যাক্রোটি আপনাকে বিভাগ দ্বারা ব্যাখ্যা করতে দিন।

উপ পরীক্ষা। . . শেষ সাব

পরীক্ষা আমাদের ম্যাক্রোর নাম, তাই কোডে, এটি হিসাবে চিহ্নিত করা হয় উপ পরীক্ষা (sub = সাবরুটিন)। একইভাবে আমরা এই ম্যাক্রো কোডটি স্টেটমেন্ট দিয়ে শেষ করি শেষ সাব. মনে রাখবেন যে এই বিবৃতিগুলি যখন আমরা মেনু থেকে একটি ম্যাক্রো তৈরি করি তখন স্বয়ংক্রিয়ভাবে যুক্ত হয়, যদিও ব্যবহারকারী সরাসরি এখানে ম্যাক্রো কোড লিখতে পারেন এবং সাবরুটিনের নামটি ম্যাক্রো নাম হিসাবে বিবেচিত হবে।

rem 

LibreOffice বেসিকের সমস্ত মন্তব্য কীওয়ার্ড দিয়ে শুরু হয় rem. rem দিয়ে শুরু হওয়া একটি সম্পূর্ণ লাইন মন্তব্য হিসেবে বিবেচিত হয়। আরেকটি উপায় ব্যবহার করা হয় ' (একক উল্টানো কমা) লাইনের শুরুতে।

dim crs(8) অবজেক্ট হিসাবে dim j হিসাবে পূর্ণসংখ্যা হিসাবে dim prof অবজেক্ট হিসাবে dim i Integer হিসাবে dim sh হিসাবে অবজেক্ট হিসাবে dim sh2 অবজেক্ট হিসাবে

এটি LibreOffice বেসিকের পরিবর্তনশীল ঘোষণা। সাধারণ সিনট্যাক্স হল হিসাবে আবছা . একটি অ্যারে ঘোষণা করতে, ভেরিয়েবল crs এর অনুরূপ সিনট্যাক্স ব্যবহার করুন, যেখানে 8 হল অ্যারের দৈর্ঘ্য।

sh = This Component.Sheets(0) crs(0) = sh.getCellRangeByPosition(0, 0, 3, 0) j = 1

এই উপাদান বর্তমান নথি বোঝায়। এই ক্ষেত্রে এটি একটি ক্যালক ওয়ার্কশীট। আমরা সূচক 0 সহ শীট লোড করি, অর্থাৎ, প্রথম শীট, পরিবর্তনশীল sh এ। নাম ব্যবহার করে একটি শীট লোড করার ফাংশনও রয়েছে।

পরবর্তী আমরা ফাংশন কল GetCellRangeByPosition অবজেক্টের sh এবং অ্যারে crs এ লোড করুন। কোষ পরিসর অবস্থানের উপর ভিত্তি করে শীটে কোষের একটি গ্রুপকে বোঝায়।

উল্লেখ্য যে যুক্তিগুলো, 0, 0 (কলাম 0, সারি 0) পরিসরের প্রারম্ভিক ঘর নির্দেশ করছে, এবং 3, 0 (কলাম 3, সারি 0) পরিসরের শেষ কক্ষকে নির্দেশ করছে। এইভাবে 0, 0, 3, 0 আমাদের নমুনা পত্রকের প্রথম (শিরোনাম) সারি বোঝায়।

i = 1 থেকে 5 x = 1 prof = sh.GetCellByPosition(3, i) rem ভেরিয়েবলে সম্পূর্ণ সারি সংরক্ষণ করুন যদি prof.string = "Writer" তাহলে crs(j) = sh.getCellRangeByPosition(0, i, 3, i) ) j = j + 1 End যদি পরবর্তী i

আমরা একটি ব্যবহার জন্য বিবৃতি সারি মাধ্যমে লুপ. দ্য জন্য ব্লক a দিয়ে শেষ হয় পরবর্তী বিবৃতি, যা প্রতিটি পুনরাবৃত্তির শেষে পরিবর্তনশীল i বৃদ্ধি করে।

পরবর্তী আমরা একটি ফাংশন কল GetCellByPosition অবজেক্টের sh. আমরা পরামিতি পাস (3, i), অর্থাৎ, প্রতিটি পুনরাবৃত্তির সাথে, কলাম 3 এবং সারির কক্ষের বস্তুটি পরিবর্তনশীল প্রফেসরে পুনরুদ্ধার করা হয়েছে।

তারপর আমরা একটি ব্যবহার যদি সেল প্রোফের মান "লেখক" কিনা তা পরীক্ষা করার জন্য বিবৃতি। যদি এটা হয়, আমরা আবার ফাংশন কল GetCellRangeByPosition, এই সময়, সঙ্গে i শুরু এবং শেষ সারি নম্বরের জায়গায়। আবার আমরা অ্যারে এটি সংরক্ষণ crs.

ThisComponent.Sheets.insertNewByName("লেখক", 1) sh2 = This Component.Sheets(1)

প্রথমে আমরা নামের সাথে একটি নতুন শীট তৈরি করি লেখকদের, অবস্থানে 1, যা 2য় অবস্থান, যেহেতু সূচক 0 থেকে শুরু হয়। তারপরে আমরা এই নতুন তৈরি শীটের একটি অবজেক্ট পাই, যাতে আমরা এই শীটে লেখকদের ডেটা প্রবেশ করতে পারি।

i = 0 না হলেও IsNull(crs(i)) sh2range = sh2.getCellRangeByPosition(0, i, 3, i) sh2range.setDataArray(crs(i).getDataArray) i = i + 1 লুপ

দ্য যখন না লুপ স্টেটমেন্ট ব্যবহার করা হয় যখন আমরা শর্তের উপর ভিত্তি করে লুপ করতে চাই, পূর্ণসংখ্যার মানের একটি পরিসরে লুপ করার বিপরীতে, যার জন্য ব্যবহার করা হয় জন্য যেমন আগে দেখানো হয়েছে। এখানে, আমরা পর্যন্ত লুপ crs(i) শূন্য নয়।

পরবর্তী, আমরা আবার কল GetCellRangeByPosition নতুন শীটে একটি রেঞ্জ অবজেক্ট পেতে আগের মতো একইভাবে।

অবশেষে, আমরা দুটি ফাংশন কল: getDataArray যা থেকে ডেটা ফেরত দেয় crs(i), অর্থাৎ, প্রথম শীট থেকে ডেটার এক সারি (একজন লেখক সম্পর্কে); এবং আমরা এই ডেটাটি ব্যবহার করে নতুন শীটে সেল পরিসরে লিখি সেট ডাটা অ্যারে.

অবশেষে, ম্যাক্রো থেকে সংরক্ষণ করুন ফাইল » সব সংরক্ষণ করুন বিকল্প

ম্যাক্রো চালানোর জন্য, যান টুলস » ম্যাক্রো » ম্যাক্রো চালান এবং ম্যাক্রো সিলেক্টর লাইব্রেরির "মাই ম্যাক্রো" ডিরেক্টরি থেকে আপনার ম্যাক্রো নির্বাচন করুন। ক্লিক করুন চালান একটি ম্যাক্রো নাম নির্বাচন করার পরে বোতাম।

আমাদের নমুনা স্প্রেডশীটে উপরের ম্যাক্রো চালানো, নিম্নলিখিত ফলাফল তৈরি করে।

এটি LibreOffice-এ ম্যাক্রো তৈরি করার উপায়। আরও তথ্য এবং বিকল্পের জন্য, অফিসিয়াল ডকুমেন্টেশন পড়ুন।

? চিয়ার্স!