تابستان کد گوگل و خوش‌خبری برای حرفه‌ای‌ها

تابستان کد گوگلآن‌هایی که در سطح حرفه‌ای از محصولات مایکروسافت و خصوصاً برنامهٔ اِکسل استفاده می‌کنند، می‌دانند که یکی از قابلیت‌های واقعاً مفید آن زبانِ برنامه‌نویسیِ VBA است.
توابع این زبان به کاربر کمک می‌کند تا کارهای پیچیده و تکراری را به‌سهولت به برنامه بسپارد و خودش به‌سادگی از کار با برنامه بهره ببرد.

اما لیبره‌آفیس پشتیبانی ضعیفی از این توابع داشت و برای مثال اگر از برنامه‌های حسابداریِ ساخته‌شده با اکسل استفاده می‌کردید، متوجه می‌شدید که برنامه آن‌طور که باید کار نمی‌کند.
طبیعی هم بود، چون لیبره‌آفیس آن توابع را نداشت.

یک دانش‌آموز در مسابقهٔ تابستان کد گوگل آستین همت بالا زده و این ضعفِ مهم را برطرف کرده است.

در نسخهٔ ۷.۵ لیبره‌آفیس شاهد پشتیبانی بسیار بهتری از VBA خواهیم بود و این یعنی سازگاری بیشتر با اسناد مایکروسافت و خصوصاً صفحه‌گسترده‌های ساخته‌شده با اکسل.

کتاب راهنمای صفحه‌گسترده

برنامهٔ صفحه‌گستردهٔ لیبره‌آفیس مثل دیگر برنامه‌هایش یک کتاب راهنما دارد.
اکنون این کتاب متناسب با آخرین تغییرات نسخهٔ ۷.۴ به‌روز شده و در دسترس علاقه‌مندان گذاشته شده.

کتاب راهنمای صفحه‌گستردهٔ لیبره‌آفیساز اینجا می‌توانید دریافتش کنید.

توابع خودمان

با استفاده از زبان برنامه‌نویسی Basic LibreOffice می‌توانید توابع جدیدی بسازید و از آن‌ها در صفحه‌گسترده خود استفاده کنید. اما این تابع‌ها در فهرست توابع رسمی اضافه نمی‌شوند و زمانی که یکی دو حرف اولشان را تایپ کنید، مثل توابع رسمی نیستند که نام کامل تابع به شما نشان داده شود و حتی با فشردن دکمهٔ Enter هم در سلول درج نمی‌شوند.
خب پس باید چه کار کنیم؟

توابع اصلی
هیچ راهی ندارید جز اینکه برای اضافه کردنشان به توابع اصلی یک افزونه بسازید.
اما چرا؟
پاسخ را از زبان یکی از اعضای تیم لیبره‌آفیس بشنویم:

Because of many aspects.

1. A macro does not advertise itself in a proper way. It does not tell its arguments properly, and its return value, in terms of Calc types (even if it does that in language-specific way).
2. A macro UDF does not distinguish itself from non-ODF neighbor functions.
3. The program only learns about macros available in a library/module after it’s loaded. We do not load all Basic, Java, Python, Javascript, etc. macros in advance. That would be problematic, e.g. give errors from incomplete modules, etc.; and people who didn’t define UDFs at all, would get the noise from all the tool functions already there.

باز هم این خطِ تیرهٔ لعنتی!

دوستان، در پیشرفت نرم‌افزارهای آزاد و متن‌باز یکی از چیزهایی که بسیار کمک‌کننده است گزارش دقیق باگ‌ها است.
یک کاربر فارسی‌زبان یک باگِ مرتبط با فارسی را در صفحه‌گستردهٔ لیبره‌آفیس دیده و گزارش آن را در اینجا فرستاده. ایشان حتی فیلمی هم از تمام مراحل کار گرفته و ضمیمه کرده است.
کارشان واقعاً تحسین دارد. اگر مایل بودید، شما هم می‌توانید به‌عنوان یک کاربرِ هم‌زبان با ایشان به واضح‌تر شدن گزارش کمک کنید.

 

تغییر هم‌زمان همهٔ فونت‌ها

سؤال: من در صفحه‌گستردهٔ لیبره‌آفیس چند برگه (Sheet) دارم و مایلم فونت همهٔ آن‌ها را هم‌زمان عوض کنم. نه وقت آن را دارم که بخواهم یکی‌یکی عوضشان کنم و نه حوصله‌اش را.
چه کار کنم؟

پاسخ:
روی یکی از برگه‌ها راست‌کلیک کنید و گزینهٔ Select All Sheets را انتخاب کنید. حالا CTRL+A را بگیرید تا همهٔ متن انتخاب شود و در نهایت هم فونت دلخواهتان را انتخاب کنید.
با این کار فونت همهٔ برگه‌ها به فونتی که شما تنظیم کردید، تغییر می‌کنند.
به‌همین سادگی.

انتخاب همهٔ برگه‌ها

افزودن چند تابع مفید

اگر از کاربران جدی برنامهٔ اِکسل باشید، قطعاً متوجه شده‌اید که برنامهٔ صفحه‌گستردهٔ لیبره‌آفیس از برخی توابع اِکسل فعلاً پشتیبانی نمی‌کند. مقصودم توابعی است که در نسخه‌های جدیدتر اِکسل (نسخهٔ ۲۰۲۱ و ۳۶۵) به آن اضافه شده‌اند و ازقضا توابع واقعاً کارآمدی هستند. تابع XLOOKUP (که بسیار پیشرفته‌تر و منعطف‌تر از تابع VLOOKUP است) یکی از آن‌هاست.

حالا یک خبر خوب:
یک کاربر خارجی که خورهٔ اکسل بوده و برنامه‌نویسی هم می‌دانسته، آمده یک افزونه نوشته که این تابع و چند تابع مفید دیگر را به لیبره‌آفیس هم بیاورد. البته این افزونه در آغاز راهش است و هنوز برخی آرگومان‌های این چند تابع را پشتیبانی نمی‌کند، اما بالاخره کاچی به از هیچی است. ضمن اینکه احتمالش زیاد است که در به‌روزرسانی‌های بعدی‌اش نه‌تنها کاستی‌هایش برطرف شوند که حتی توابع جدیدی نیز به آن اضافه شوند.

این افزونه که می‌توانید آن را از اینجا دریافت کنید، در حال حاضر توابع زیر را به لیبره‌آفیس اضافه می‌کند:

XLOOKUP
FILTER
SORT
TEXTSPLIT
TOCOL
UNIQUE

تابع XLOOKUP

اجتناب از داده‌های تکراری

فرض کنید شما یک ستون دارید که باید با مبالغی (مثل حقوق کارمندان) پر شوند. احتمال می‌دهید که شاید در زمان وارد کردن مبالغ، یک عدد را دو بار وارد کنید و به‌بیان دیگر عددِ واردشده تکراری باشد.
چه کار می‌کنید؟

راه ساده‌ای برایش هست.
ابتدا ستونی را که قرار است اعداد در آن وارد شوند (برای مثال ستون A) انتخاب کنید.
حالا از زبانهٔ Data گزینهٔ Validity را انتخاب کنید.
در انتها در برگهٔ Criteria گزینهٔ Custome را انتخاب کنید و در فیلد Formula فرمول زیر را وارد کنید:

COUNTIF(A$1:A$100,A1)<=1

اجتناب از داده‌های تکراریضمناً می‌توانید در زبانهٔ Error Alert متن هشدار را هم سفارشی کنید و متن دلخواهتان را بنویسید.