اكتشفوا 15 ماكرو بـ “JavaScript” تستحق التجربة في عام 2025

٢٧ فبراير ٢٠٢٥بواسطة Adel Jaber

:بينما يعتمد “Microsoft Office” بشكل أساسي على ماكرو “VBA”، تبرز “ONLYOFFICE” بدعمها المبتكر لماكرو “JavaScript”، مما يفتح آفاقًا واسعة من الإمكانيات والمرونة. نستعرض لكم في هذه المقالة مجموعة مختارة من ماكرو “ONLYOFFICE” المتميزة التي تُشكّل بديلاً قويًا ومبتكرًا للماكرو التقليدي المعتمد على “VBA”.

15 useful JavaScript macros to try in 2024

ما هو ماكرو “JavaScript”؟

تُعتبر الماكروز أدوات قوية لأتمتة المهام، إذ تعتمد “ONLYOFFICE” على “JavaScript” لإنشاء حلول تغطي تحرير المستندات والجداول الحسابية والعروض التقديمية وملفات “PDF”. وتُمكّن هذه الأدوات المستخدمين من تبسيط العمليات وتحسين وظائف المستندات وتخصيص تطبيقات “ONLYOFFICE” لتلبية احتياجاتهم.

لماذا قد تحتاجون إلى بديل عن ماكروز “VBA”؟

تتيح لكم القدرة على كتابة ماكروز “JavaScript” مخصصة تحقيق الأتمتة وتعزيز التفاعلية وضمان تكامل سلس مع الأنظمة الخارجية:

  •  الأتمتة: تُمكِّن ماكروز “JavaScript” من أتمتة المهام مثل تنسيق المستندات ومعالجة البيانات وإجراء العمليات الحسابية.
  •  التفاعلية: تجعل الماكروز المستندات أكثر تفاعلية، حيث يمكنها الاستجابة لإجراءات المستخدم أو الأحداث المختلفة.
  •  التخصيص: يمكنكم تعديل سلوك تطبيقات “ONLYOFFICE” وفقًا لاحتياجاتكم الخاصة.
  •  التكامل: تسمح لكم ماكروز “JavaScript” بالربط مع الأنظمة والخدمات الخارجية، مما يسهل تبادل البيانات والتواصل بين “ONLYOFFICE” ومنصات أخرى.

وبما أن ماكروز “ONLYOFFICE” تعتمد على “JavaScript”، فهي لا تتميز فقط بالمرونة بل تُعد أيضًا من أكثر اللغات شيوعًا بفضل مجتمعها النشط. هناك وفرة من الشروحات والدروس التي تقدم إرشادات شاملة حول كيفية تنفيذ مختلف المهام باستخدام “JavaScript” إلى جانب وثائقنا التفصيلية التي تشرح الطرق التي يمكنكم استخدامها في ماكروز “JavaScript”.

مقارنة بين ماكروز “VBA” في “Excel” وبدائل “JavaScript” في “ONLYOFFICE”

تمييز القيم المكررة في التحديد

في “Excel”، يكون ماكرو “VBA” المستخدم كالتالي:

Sub HighlightDuplicateValues()
Dim myRange As Range
Dim myCell As Range
Set myRange = Selection
For Each myCell In myRange
If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then
myCell.Interior.ColorIndex = 36
End If
Next myCell
End Sub

أما في “ONLYOFFICE”، فيقدم البديل وظيفة أكثر تطورًا من خلال تمييز القيم المكررة بألوان فريدة.

(function () 
{
    // Background color of cells with non-repeating values
    var whiteFill = Api.CreateColorFromRGB(255, 255, 255);
    // The current index of the color range
    var uniqueColorIndex = 0;
    // Color range to highlight duplicate values
    var uniqueColors = [Api.CreateColorFromRGB(255, 255, 0),
        Api.CreateColorFromRGB(204, 204, 255),
        Api.CreateColorFromRGB(0, 255, 0),
        Api.CreateColorFromRGB(0, 128, 128),
        Api.CreateColorFromRGB(192, 192, 192),
        Api.CreateColorFromRGB(255, 204, 0)];
    // Function to get color for duplicates
    function getColor() {
        // If you have chosen all the unique colors, then let's go from the beginning
        if (uniqueColorIndex === uniqueColors.length) {
            uniqueColorIndex = 0;
        }
        return uniqueColors[uniqueColorIndex++];
    }
    // Getting an active sheet
    var activeSheet = Api.ActiveSheet;
    // Getting selection on the active sheet
    var selection = activeSheet.Selection;
    // Map of values in cells with the duplicates number
    var mapValues = {};
    // All cells range
    var arrRanges = [];
    // Going through the selection
    selection.ForEach(function (range) {
        // Getting value from cell
        var value = range.GetValue();
        if (!mapValues.hasOwnProperty(value)) {
            mapValues[value] = 0;
        }
        mapValues[value] += 1;
        arrRanges.push(range);
    });
    var value;
    var mapColors = {};
    // We go through all the cells of the selection and setting the highlighting if this value is repeated more than 1 time
    for (var i = 0; i < arrRanges.length; ++i) {
        value = arrRanges[i].GetValue();
        if (mapValues[value] > 1) {
            if (!mapColors.hasOwnProperty(value)) {
                mapColors[value] = getColor();
            }
            arrRanges[i].SetFillColor(mapColors[value]);
        } else {
            arrRanges[i].SetFillColor(whiteFill);
        }
    }
})();

(no title)

إظهار جميع الصفوف والأعمدة

يعمل هذا السكريبت في “VBA” على إظهار جميع الصفوف والأعمدة في الجدول:

Sub UnhideRowsColumns()
Columns.EntireColumn.Hidden = False
Rows.EntireRow.Hidden = False
End Sub

ويمكن تنفيذ الأمر نفسه باستخدام ماكرو “JavaScript”:

(function()
{
    var activeSheet = Api.ActiveSheet;
    var indexRowMax = 1048576;
    var n = 1;
    for (let i = 0; i < indexRowMax; i++) {
        activeSheet.GetRows(n).SetHidden(false);
        n++;
    }
    var newRange = activeSheet.GetRange("A1");
    newRange.SetValue("All the rows and columns are unhidden now");
})();

(no title)

كما يمكنكم أيضًا إخفاء جميع الصفوف والأعمدة من خلال ضبط معلمة “SetHidden” على “true” في هذا الماكرو:

(function()
{
    var activeSheet = Api.ActiveSheet;
    var indexRowMax = 1048576;
    var n = 1;
    for (let i = 0; i < indexRowMax; i++) {
        activeSheet.GetRows(n).SetHidden(true);
        n++;
    }
    var newRange = activeSheet.GetRange("A1");
    newRange.SetValue("All the rows and columns are hidden now");
})();

إذا كنتم بحاجة إلى مزيد من الميزات المتقدمة، فقد تناولنا في تدوينة أخرى ماكرو يتيح لكم إخفاء أو إظهار صفوف وأعمدة محددة.

تمييز القيم الأكبر من قيمة معينة

إليكم إصدار “VBA” الذي يميز القيم الأكبر من قيمة محددة:

Sub HighlightGreaterThanValues()
Dim i As Integer
i = InputBox("Enter Greater Than Value", "Enter Value")
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, _
Operator:=xlGreater, Formula1:=i
Selection.FormatConditions(Selection.FormatConditions.Count).S
tFirstPriority
With Selection.FormatConditions(1)
.Font.Color = RGB(0, 0, 0)
.Interior.Color = RGB(31, 218, 154)
End With
End Sub

يمكن تنفيذ المهمة نفسها باستخدام ماكرو “JavaScript” في “ONLYOFFICE” مع عدد أقل من الأسطر البرمجية:

(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value > 5) {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });    
})();

(no title)

ورغم قلة عدد الأسطر، فإن البديل الذي نقدمه أكثر مرونة. فعلى سبيل المثال، يمكنكم من خلال تعديل شرط جملة “if”:

  •  تمييز القيم الأصغر من قيمة معينة
(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value < 5) {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });
  •  تمييز الأرقام السالبة
(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value < 0) {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });
})();
  •  تمييز الخلايا التي تحتوي على نص معين
(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value == 'text') {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });
 })();

اليكم المزيد من ماكروز “JavaScript” المفيدة التي يمكنكم تجربتها

  1.  ماكرو “JavaScript” لإضافة ترقيم إلى نطاق محدد في جداول “ONLYOFFICE”
    أحيانًا، لا يكفي الفهرس الافتراضي. وهنا يأتي دور ماكرو “JavaScript” الموفر للوقت؛ فهو يرقم الصفوف المحددة بشكل مرتب، مما يُسهّل العمل على الجداول.
  2.  ماكرو “JavaScript” لنسخ الجداول الحسابية
    قد يكون تحرير الجداول الحسابية معقدًا، خاصة عند التعامل مع عدة جداول تحتوي على بيانات متشابهة. يساعد هذا الماكرو على نسخ البيانات من جدول إلى آخر، مما يسهل التعامل مع الجداول الكبيرة.
  3.  ماكرو “JavaScript” لتعديل حجم الصور في العروض التقديمية
    التعامل مع الصور في العروض التقديمية يتطلب غالبًا ضبط الحجم يدويًا، وهو أمر يستغرق وقتًا طويلاً، خاصة عند وجود عدد كبير من الصور. يقوم هذا الماكرو بتغيير حجم جميع الصور في العرض التقديمي بسهولة.
  4.  ماكرو “JavaScript” لاستيراد الروابط التشعبية إلى جدول بيانات
    يمكن أن تعزز الروابط التشعبية من مظهر الجداول ووظائفها، مما يسهل الوصول إلى الموارد المهمة داخل المستندات. يقوم هذا الماكرو باستيراد الروابط التشعبية عبر استخراج بيانات الروابط من جدول بيانات آخر.
  5.  ماكرو “JavaScript” للعثور على شعارات الشركات
    نظرًا للعدد الكبير من الشعارات المتوفرة، قد يكون من الصعب أحيانًا اكتشاف مراجع الشعارات، مما قد يؤدي إلى بعض الارتباك. ومع ذلك، باستخدام ماكروز “ONLYOFFICE”، يمكنكم جعل هذه العملية آلية. يقوم هذا الماكرو باستخدام “JavaScript” باستخراج عدة شعارات في وقت واحد من “API” خارجي وإدراجها في جدول البيانات.
  6.  ماكرو “JavaScript” لتوليد تحيات شخصية حسب الجنس
    تلعب التحية المناسبة دورًا أساسيًا في التواصل، إذ تنقل قيم الاحترام والشمولية والاحترافية. يستخدم هذا الماكرو لغة “JavaScript” مع واجهة “Genderize.io” لتوليد تحيات شخصية وفقًا للجنس.
  7.  ماكرو “JavaScript” لتتبع الطلبات على “Shopify”
    في عصرنا الحالي، أصبحت التجارة الإلكترونية أداة قيمة لتجاوز الحواجز الجغرافية وتسهيل تدفق الإيرادات المستمر. لذلك، يعد إدارة وتتبع بيانات الطلبات جزءًا أساسيًا من استراتيجية الأعمال الناجحة. يقوم هذا الماكرو باستخدام “JavaScript” بجلب بيانات الطلبات من “Shopify” وإدراجها في جدول البيانات.
  8.  ماكرو “JavaScript” لاستيراد بيانات “CSV” و “TXT” إلى جدول البيانات
    تخزين البيانات الجدولية بصيغة “CSV” يعد خيارًا عمليًا للعديد من الأسباب، مما يجعل هذه الملفات شائعة جدًا. يتيح “ONLYOFFICE Docs” استيراد ملفات “CSV” و “TXT” المحلية، بينما يساعدكم هذا الماكرو باستخدام “JavaScript” في استيراد الملفات عن بُعد بصيغتي “CSV” و “TXT”.
  9.  ماكرو “JavaScript” لاستبدال الكلمات في المستند
    تحرير المستندات جزء أساسي من روتيننا اليومي، ونعمل دائمًا على البحث عن أدوات لتبسيط الأعمال المتكررة. هذا الماكرو باستخدام “JavaScript” يستبدل الكلمات في المستند ضمن التحديد.
  10.  ماكرو “JavaScript” لإنشاء جدول من القائمة المرقمة
    عند إدارة المستندات، يمكن أن يساعد تحويل القوائم المرقمة إلى جداول في تحسين قابلية القراءة والعرض. يقوم هذا الماكرو باستخدام “JavaScript” بتحويل القوائم المرقمة إلى جداول منظمة.
  11.  ماكرو “JavaScript” لنسخ الأعمدة إلى جداول بيانات منفصلة
    من خلال استخدام ماكروز “ONLYOFFICE”، يمكنكم تبسيط المهام المعقدة وتقليل ساعات العمل إلى نقرة واحدة. يقوم هذا الماكرو باستخدام “JavaScript” بنسخ الأعمدة المحددة إلى أوراق عمل مخصصة.
  12.  ماكرو “JavaScript” لإزالة التكرارات من التحديد
    يعمل هذا الماكرو باستخدام “JavaScript” على إزالة التكرارات من التحديد في جدول البيانات، مما يساعدكم في التخلص من الإدخالات المكررة وتحسين دقة بياناتكم بشكل بسيط وفعال، وبالتالي تعزيز تجربتكم في العمل على جداول البيانات.

ماكروز “ONLYOFFICE” هي أدوات مرنة وقوية، قادرة على تقليد وظائف ماكروز “VBA” بل وتجاوزها.

نحن نشجع الجميع على الاستفادة من واجهة “ONLYOFFICE” لإنشاء ماكروز مبتكرة تلبي احتياجاتكم. إذا كانت لديكم أي استفسارات أو أفكار، لا تترددوا في التواصل معنا؛ فنحن نرحب بالنقاش والتعاون.

ONLYOFFICE ١. أنشئ حسابك المجاني من

،٢. قم بعرض و تحرير أو التعاون على المستندات، الجداول ، العروض التقديمية