تُعد جداول البيانات الإلكترونية، وفي مقدمتها برنامج مايكروسوفت إكسيل (Microsoft Excel)، من الركائز الأساسية التي تعتمد عليها المؤسسات البحثية، والإدارية، والمالية في معالجة وتحليل وتفسير البيانات الكمية والنوعية. ومع تنامي الاعتماد على التمثيل البصري للمعلومات، يلجأ المستخدمون والمحللون بصورة متكررة إلى التنسيقات المطبعية المتنوعة، مثل تطبيق الخط العريض أو الغامق (Bold Font)، لتمييز السجلات ذات الأهمية القصوى، أو استعراض الإجماليات الفرعية، أو الإشارة إلى الانحرافات والقيم المتطرفة التي تتطلب انتباهاً فورياً. ومع ذلك، يفرض هذا التفاعل بين الطبقة البصرية وطبقة البيانات الرياضية فجوة تقنية ملحوظة، إذ صُممت أدوات التصفية والفرز الافتراضية للتعامل مع القيم الرقمية والنصية الصريحة، في حين تُعامل الخصائص الشكلية كعناصر تكميلية يصعب عزلها بصورة مباشرة.
تنشأ الإشكالية المنهجية عندما يجد الباحث أو المحلل نفسه أمام جدول بيانات ضخم يضم آلاف السجلات التي تم تمييز بعضها يدوياً أو سياقياً بالخط العريض، دون وجود عمود وصفي يحدد سبب هذا التمييز. في مثل هذه الحالات، تقف أدوات التصفية التقليدية في إكسيل عاجزة عن توفير خيار مباشر مثل “التصفية حسب سمك الخط”، مما يستدعي فهم البنية العميقة لكائنات إكسيل البرمجية وطرق استخراج البيانات الوصفية (Metadata). إن تحويل التنسيق البصري إلى متغير منطقي ثنائي (Boolean) ليس مجرد حيلة تقنية عابرة، بل هو إجراء منهجي يضمن استعادة انضباط البيانات ويفصل بين محتوى الخلية وطريقة عرضها لتمكين أدوات الفرز الإحصائي من أداء وظائفها بدقة متناهية.
يهدف هذا المقال الأكاديمي الشامل إلى تقديم دراسة معمقة وتطبيقية لكيفية تصفية البيانات وفق نمط الخط العريض في مايكروسوفت إكسيل. سنستعرض عبر هذا الدليل التقني المسوغات النظرية المرتبطة بإدراك التنسيق الشكلي، ثم ننتقل تفصيلياً إلى بناء الدوال البرمجية المخصصة عبر بيئة Visual Basic for Applications (VBA)، وصولاً إلى استكشاف التقنيات البديلة التي لا تعتمد على الأكواد، مثل أدوات البحث المتقدمة وماكرو إكسيل 4.0 التاريخي. ومن خلال تطبيق عملي مدعوم بالأمثلة الواقعية، سيتسنى للمحلل الأكاديمي والمهني تحويل الجداول البصرية غير المنظمة إلى مصفوفات خاضعة تماماً للتحليل الرياضي والاسترجاع الدقيق، مع تفادي الأخطاء الشائعة المتعلقة بالتنسيق الشرطي وحفظ المصنفات.

1. الإطار النظري لتنسيق البيانات وتحديات التصفية المعتمدة على الخصائص الشكلية
1.1 الأهمية السيميائية للخط العريض في تمثيل البيانات وجداول الإحصاء
يمثل الخط العريض في علم تصميم الواجهات وجداول البيانات علامة سيميائية بصرية ذات دلالة إدراكية حاسمة؛ إذ يعمل الوزن المطبعي الإضافي كإشارة موجهة للانتباه تخرق رتابة النص العادي، وتجذب المعالجة الحسية الأولية للقارئ قبل الشروع في القراءة التحليلية المعمقة. إن توظيف هذا الوزن الشكلي يتيح للمحلل إرساء تسلسل هرمي للمعلومات داخل الصفحة الواحدة، حيث يُصنف الخط الغامق في الممارسات الإحصائية والمحاسبية كرمز اصطلاحي يعبر عن القيم التجميعية، أو الإجماليات الكلية، أو المجاميع الفرعية، مما يجنب الباحث الخلط بين البيانات الأولية الخام والبيانات المشتقة تجميعياً. ومن منظور علم النفس الإدراكي وهندسة العوامل البشرية، تلعب هذه الإشارات دوراً بارزاً في التخفيف من الجهد الذهني المبذول أثناء مسح الجداول الضخمة، حيث يرتبط هذا التنسيق بنظرية الإشارات المطبعية وظاهرة العزل الإدراكي؛ إذ تبرهن الدراسات الحديثة في مجال التفاعل الإنساني الحاسوبي على أن التدفق البصري للمعلومات المنبهة يساهم في تقليل زمن الاستجابة الذهنية للأخطاء والمؤشرات الحرجة (Maior et al., 2018).
علاوة على ذلك، يتجاوز الخط العريض كونه مجرد حلية بصرية جمالية ليتحول إلى متغير تصنيفي ضمني؛ فالخلية التي تحمل خطاً عريضاً لا تختلف عن نظيرتها غير المنسقة في المحتوى الرقمي المكتوب، ولكنها تحمل “قيمة سياقية” مضافة تفيد بضرورة إخضاعها لمعاملة خاصة. هذا التحول من المظهر الجمالي المجرد إلى المتغير الإحصائي النوعي يفرض تحديات جمة على نظم إدارة المعلومات، لأن النظام الآلي لا يدرك هذه السيميائية بصورة فطرية، بل يرى أحرفاً وأرقاماً متطابقة في القيمة الرياضية المجردة. وبالتالي، فإن الفشل في استيعاب البعد الدلالي للخط العريض يؤدي إلى فقدان حلقة وصل محورية بين القصد التحليلي للمدخل البشري والقدرة الخوارزمية للبرمجية المستخدمة في فرز وتبويب البيانات، مما يستوجب وضع آليات تقنية تعيد تفسير هذا الثقل البصري في صيغة معيارية مقروءة حسابياً.
1.2 القصور الوظيفي لأدوات الفلترة القياسية في مايكروسوفت إكسيل
عند فحص واجهة المستخدم القياسية في مايكروسوفت إكسيل، وتحديداً قائمة التصفية التلقائية (AutoFilter)، يظهر قصور وظيفي جوهري يتمثل في التركيز الحصري لمحرك التصفية الافتراضي على قيم الخلايا المادية (Values)، أو ألوان الخلفية (Cell Fill Colors)، أو ألوان الخطوط الظاهرة (Font Colors)، بالإضافة إلى أيقونات التنسيق الشرطي. وعلى النقيض من ذلك، يغيب خيار الفرز أو التصفية بالاستناد إلى وزن الخط وسماكته (Font Weight/Style)، كأن يتاح خيار “تصفية حسب الخط العريض” أو “الخط المائل”. هذا الغياب ليس مجرد إغفال برمججي سطحي، بل هو انعكاس للفصل الصارم الذي بنته مايكروسوفت في محرك إكسيل الأساسي بين مصفوفة البيانات ومحرك التنسيق المظهري؛ إذ صُمم محرك التصفية الداخلي ليمسح خصائص معينة دون استنزاف موارد المعالجة في قراءة ملفات تعريف الأنماط الكاملة لكل خلية على حدة.
نتيجة لهذا التحديد الهيكلي، يواجه المستخدم استحالة تقنية في تصفية السجلات ذات النصوص الغامقة بشكل مباشر من خلال القوائم المنسدلة التقليدية دون الاستعانة بوسائط مساعدة أو نصوص برمجية خارجية. ويتفاقم هذا التحدي في بيئات العمل الاحترافية التي تستقبل ملفات تاريخية ملونة ومنسقة يدوياً دون وجود حقول تشير إلى تصنيف السطر. إن السعي لتجاوز هذا القصور يتطلب منهجية واعية تقوم على تحويل الخصائص البصرية غير الرقمية إلى بيانات ثنائية صريحة قابلة للمعالجة، وهو ما يعيد تنظيم فضاء التحليل ويرفع العبء الحسابي عن المستخدم، تماشياً مع أبحاث الحمل الإدراكي ومحدودية سعة الذاكرة العاملة لدى العاملين على المنظومات الرقمية المركبة (Freeman et al., 2016).
1.3 مفهوم استخلاص البيانات الوصفية (Metadata Extraction) من خلايا المصنف
يستند الحل الجذري لمشكلة التصفية بحسب التنسيق إلى تطبيق مبادئ استخلاص البيانات الوصفية (Metadata Extraction) المرتبطة بكائن الخلية (Cell Object) في بيئة الجداول الحسابية. فالخلية في مايكروسوفت إكسيل ليست مجرد حاوية لنص أو رقم، بل هي كائن برمجي غني يمتلك مصفوفة واسعة من الخصائص؛ تشمل القيمة المخزنة، والقيمة المعروضة، والصيغة الحسابية، وطبقة التعليقات، إلى جانب مصفوفة التنسيق المعقدة التي ينضوي تحتها نوع الخط، وحجمه، ولونه، وحالته التنسيقية من حيث السماكة والميلان والتسطير. وعندما نعجز عن تصفية الخلية بناءً على قيمتها السطحية، يصبح لزاماً علينا النفاذ إلى هذه البيانات الوصفية الخفية واستخلاص المتغير المرتبط بالخط الغامق بوصفه بياناً مستقلاً بذاته.
يتطلب هذا الاستخلاص عزل السلوك التنسيقي ونقله من النطاق الشكلي إلى عمود بيانات مستقل قابل للمعالجة المنطقية والفرز الرياضي. وتكمن الأهمية المنهجية لهذا الإجراء في تطبيق المبدأ المعماري الراسخ في علوم الحوسبة والمتمثل في “فصل طبقة البيانات عن طبقة العرض” (Separation of Data and Presentation Layers). فعندما تندمج المعلومة التصنيفية داخل العرض المرئي للخلية، تتعطل آليات الاستعلام الآلية؛ بينما يؤدي استخلاص حالة الخط العريض وإسنادها إلى متغير منطقي ثنائي يحمل القيمة “صحيح” (TRUE) في حال وجود الخط العريض أو “خطأ” (FALSE) في حال غيابه، إلى تمكين محركات التصفية من أداء دورها بكفاءة مطلقة ودون المساس بسلامة البيانات الأصلية.

2. تهيئة بيئة العمل وإظهار تبويب المطور (Developer Tab)
2.1 هيكلية واجهة الاستخدام والعلة البرمجية لحجب أدوات المطور افتراضياً
تعتمد فلسفة تصميم واجهة المستخدم في برمجيات مايكروسوفت المكتبية الحديثة على تقديم الأدوات الأكثر شيوعاً واحتياجاً للمستخدم العادي، مع حجب الأدوات التخصصية والمتقدمة تجنباً لإرباك بيئة العمل وتقليلاً لاحتمالات الخطأ التشغيلي. وفي هذا الإطار، يُحجب تبويب المطور (Developer Tab) افتراضياً عند تثبيت حزمة أوفيس؛ والعلة التقنية الكامنة وراء هذا الإخفاء تعود بالأساس إلى سياسات الحماية الصارمة التي تنتهجها الشركة لحماية بيئة الحوسبة المكتبية من تفعيل الشيفرات غير المقصودة أو تشغيل نصوص برمجية خبيثة قد تلحق الضرر ببيانات المصنف أو بالبنية التحتية للحاسوب المضيف. إن فتح المجال الافتراضي أمام أدوات التحكم في عناصر ActiveX وتعديل وحدات الماكرو دون وعي من المستخدم قد يجعله عرضة لهجمات التصيد والاختراق البرمجي المعتمدة على المستندات الملغمة.
ومع ذلك، يمثل تبويب المطور البوابة الأساسية التي لا غنى عنها لأي محلل يسعى لتجاوز الحدود الضيقة للواجهة الرسومية القياسية؛ فهو يوفر الوصول المباشر إلى بيئة Visual Basic for Applications (VBA)، ويتيح إدراج أدوات التحكم في النماذج، وإدارة وحدات الماكرو، واستيراد وتصدير مخططات XML. ومن هنا، فإن إظهار هذا التبويب يمثل الخطوة التحضيرية المنهجية الأولى لتهيئة بيئة التحليل للتعامل مع البرمجيات النصية والأوامر الموسعة التي تتطلبها مهام استخلاص التنسيقات المتقدمة، وضمان التفاعل السلس بين الأوامر البرمجية ونواة البرنامج الحسابية.
2.2 الخطوات الإجرائية لإظهار تبويب المطور عبر تخصيص الشريط
يتطلب إظهار تبويب المطور في بيئة إكسيل اتباع سلسلة من الخطوات الإجرائية الدقيقة التي تعيد ضبط شريط الأدوات الرئيسي (Ribbon). تبدأ هذه العملية بالانتقال إلى الركن العلوي لواجهة التطبيق والنقر على قائمة “ملف” (File)، والتي تنقل المستخدم من مساحة العمل الجداولية إلى واجهة Backstage المخصصة لإدارة إعدادات المصنف والتطبيق. من خلال اللوحة الجانبية لهذه الواجهة، يتعين على المحلل التوجه نحو الأسفل والنقر على خيار “خيارات” (Options)، الأمر الذي يؤدي إلى انبثاق نافذة إعدادات إكسيل الشاملة (Excel Options) التي تتحكم في مختلف معايير الأداء والعرض والتحرير داخل البرنامج.
داخل نافذة الخيارات المتقدمة، يتم النقر على قسم “تخصيص الشريط” (Customize Ribbon) المتواجد في اللوحة الرأسية جهة اليمين أو اليسار بحسب لغة الواجهة؛ وعندها تنقسم النافذة إلى قائمتين رئيستين من الأوامر. يجب على المستخدم تركيز الانتباه على القائمة المعروضة تحت عنوان “علامات التبويب الرئيسية” (Main Tabs)، والتمرير لأسفل حتى العثور على خيار “المطور” (Developer). يكون مربع الاختيار المحاذي لهذا الخيار غير مفعل افتراضياً؛ وبمجرد النقر عليه وتفعيله، ثم الضغط على زر “موافق” (OK) في أسفل النافذة، تُحفظ التعديلات في ملف تعريف المستخدم ويظهر تبويب المطور فوراً ضمن التبويبات القياسية أعلى واجهة إكسيل، جاهزاً لتوفير أدوات التطوير البرمجي المطلوبة.
2.3 ضبط مستويات أمان وحدات الماكرو لحماية مصنف العمل
بمجرد تفعيل تبويب المطور، يبرز متطلب تنظيمي بالغ الأهمية يتمثل في فحص وضبط مستويات أمان وحدات الماكرو؛ إذ إن البيئة الافتراضية لمايكروسوفت إكسيل تعطل كافة الأكواد والبرمجيات النصية التلقائية لحماية النظام من البرمجيات الضارة. ولإجراء هذا الضبط، يتوجه المستخدم إلى تبويب المطور ثم ينقر على أيقونة “أمان الماكرو” (Macro Security) الواقعة ضمن مجموعة أوامر “التعليمات البرمجية” (Code)، والتي تفتح مباشرة نافذة “مركز التوثيق” (Trust Center) المتخصصة في إدارة أذونات الأمان والمصادقة الرقمية.
داخل مركز التوثيق، تظهر أربعة مستويات رئيسية للتعامل مع وحدات الماكرو. يوصى أكاديمياً ومهنياً باختيار خيار “تعطيل كافة وحدات الماكرو مع إشعار” (Disable all macros with notification)؛ إذ يتيح هذا الخيار تشغيل المصنف بأمان افتراضي مع إظهار شريط تحذيري عند فتح أي ملف يحتوي على أكواد، مما يمنح المستخدم سلطة اتخاذ القرار بتمكين الشيفرة يدوياً بعد التأكد من مصدرها ومحتواها. وفي البيئات المؤسسية والأكاديمية ذات الحساسية الأمنية العالية، يُنصح بالاعتماد على الماكرو ذي التوقيع الرقمي، أو إضافة مجلدات العمل المعتمدة إلى قائمة “المواقع الموثوقة” (Trusted Locations)، مما يضمن تشغيل الدوال المعرفة من قبل المستخدم بسلاسة دون التضحية بالحصانة الأمنية لمصفوفة التشغيل.

3. بناء الدالة البرمجية المخصصة (UDF) للكشف عن الخط العريض عبر VBA
3.1 مدخل إلى محرر الفيجوال بيسك للتطبيقات (VBE) وإدراج الوحدات النمطية
يُمثل محرر الفيجوال بيسك للتطبيقات (Visual Basic Editor – VBE) البيئة التطويرية المتكاملة المدمجة داخل حزمة أوفيس، والتي تتيح للمستخدمين كتابة الشيفرات واختبارها وتصحيحها لأتمتة المهام وبناء وظائف مخصصة لا تدعمها الواجهة الرسومية بشكل مباشر. يمكن الوصول إلى هذا المحرر عبر النقر على أيقونة Visual Basic المتواجدة في أقصى يسار تبويب المطور، أو بصورة أسرع وأكثر كفاءة من خلال الضغط على الاختصار المرجعي من لوحة المفاتيح (Alt + F11). بمجرد الضغط، تنبثق نافذة المحرر المستقلة التي تشتمل على عدة نوافذ فرعية، أبرزها نافذة “متصفح المشروع” (Project Explorer) ونافذة “الخصائص” (Properties Window).
في متصفح المشروع، تظهر بنية المصنف النشط في صورة شجرة كائنات تتضمن أوراق العمل وكائن هذا المصنف (ThisWorkbook). وحتى نتمكن من كتابة دالة مخصصة قابلة للاستدعاء من أي خلية في أي ورقة عمل داخل المصنف، يجب عدم كتابة الشيفرة داخل كود الورقة المفردة، بل يتعين إدراج “وحدة نمطية قياسية” (Standard Module). ويتم ذلك عبر الانتقال إلى شريط القوائم العلوي للمحرر، واختيار قائمة “إدراج” (Insert)، ثم النقر على “وحدة نمطية” (Module). يؤدي هذا الإجراء إلى فتح مساحة تحرير بيضاء خالية مخصصة لكتابة النصوص البرمجية، حيث ستستقر دالتنا المخصصة لتكون جاهزة للتنفيذ الحسابي.
3.2 التحليل البنيوي للشيفرة البرمجية التابعة لدالة FindBold
لبناء دالة مخصصة (User-Defined Function – UDF) قادرة على رصد الوزن المطبعي للخط، نقوم بصياغة الشيفرة البرمجية بلغة VBA بأسلوب يحقق أقصى درجات الإيجاز والدقة المنهجية. تتألف هذه الشيفرة من بضعة أسطر برمجية ذات بناء تركيبي صارم، كما هو موضح أدناه:
Function FindBold(r As Range) As Boolean
FindBold = r.Font.Bold
End Function
يبدأ السطر الأول بالإعلان عن الدالة عبر الكلمة المفتاحية Function، يليها اسم الدالة المختار FindBold، ثم حصر المدخلات بين قوسين بتحديد المتغير r بوصفه كائناً من نوع نطاق Range، متبوعاً بتعريف نوع المخرج البرمجي كقيمة منطقية As Boolean. هذا التحديد الصارم للأنماط يضمن عدم قبول الدالة لأي مدخلات غير مكانية، ويؤكد للمترجم أن القيمة المرتدة ستكون حصراً إما صواب (TRUE) أو خطأ (FALSE). في السطر الثاني، نصل مباشرة إلى جوهر المعالجة؛ حيث نستدعي كائن النطاق r ونلج إلى خاصية الخط المندرجة تحته Font، ومن ثم نقرأ الخاصية المنطقية الفرعية Bold ونسند قيمتها مباشرة إلى اسم الدالة FindBold. ويختتم الإجراء بالسطر End Function الذي ينهي دورة حياة التنفيذ البرمجي ويعيد الناتج إلى الخلية الطالبة.
3.3 معالجة المدخلات المركبة وسلوك الدالة مع النطاقات المختلفة
تستدعي الرصانة البرمجية تحليلاً دقيقاً لسلوك الدالة FindBold عند مواجهة حالات الإدخال الاستثنائية والمعقدة. صُممت الدالة أعلاه لتتعامل مع مرجع خلية مفردة (مثل A2)؛ فإذا مرر المستخدم نطاقاً متعدد الخلايا (مثل A2:A10)، فإن الخاصية r.Font.Bold ستقيم فقط الخلية الأولى الواقعة في الركن العلوي الأيمن من النطاق في الإصدارات القديمة، أو قد تسفر عن خطأ في التوافق المنطقي ما لم تُعدل الشيفرة لتدعم المصفوفات الديناميكية. كما تبرز حالة خاصة بالغة الحساسية حينما تكون محتويات الخلية الواحدة منسقة بنمط مركب ومختلط؛ أي أن تحتوي الخلية على جملة تتألف من بعض الكلمات العريضة وبعض الكلمات ذات الوزن العادي.
في حالة التنسيق المختلط، يُرجع محرك إكسيل الداخلي القيمة الخاصة Null عند فحص الخاصية r.Font.Bold؛ ولأن الدالة أُعلن عنها بأنها تُرجع متغيراً من النمط البولياني الصارم، فإن القيمة Null قد تؤدي إلى حدوث خطأ تشغيلي من النوع “عدم تطابق النوع” (Type Mismatch – Error 13) إذا لم تتم معالجتها بحذر. ولتجنب هذا القصور في التطبيقات المتقدمة، يمكن تعديل نوع المخرج البرمجي ليكون من النمط المتنوع Variant، أو إضافة شرط برمجي يتحقق من دالة IsNull(r.Font.Bold) لمعاملة الخلايا ذات التنسيق الجزئي كقيم موجبة أو سالبة وفق معايير الدراسة. كما يُعد توثيق هذه التفاصيل عبر التعليقات البرمجية (باستخدام علامة الفاصلة العليا ‘) داخل الوحدة النمطية ركيزة أساسية لضمان استدامة الكود وتسهيل مراجعته وتطويره من قبل باحثين آخرين لاحقاً.

4. إعداد مصفوفة البيانات التجريبية وضبط سيناريو التطبيق العملي
4.1 تصميم جدول بيانات معياري يحاكي النماذج البحثية والمحاسبية
لإجراء التحقق التجريبي من كفاءة الدالة المخصصة ومسار التصفية، نقوم ببناء مصفوفة بيانات اختبارية معيارية تحاكي سجلات الأداء الميداني في بيئة محاكاة محاسبية وبحثية موسعة. يتكون الجدول المقترح من مائة صف موزعة على أربعة حقول رئيسية: “معرف السجل” (Record_ID)، و”اسم الموظف أو العينة” (Subject_Name)، و”الموقع الإقليمي” (Region)، و”القيمة المحققة” (Score_Achieved). تم إدخال البيانات بصورة منضبطة مع تجنب الفراغات العشوائية، لتمكين محرك الجداول من التعامل مع النطاق بوصفه وحدة بيانات متماسكة ومترابطة بنائياً.
عقب إدخال البيانات الصافية، تم تطبيق تنسيق الخط العريض بصورة واعية وانتقائية على نسبة محددة من السجلات تبلغ 15% من إجمالي الصفوف. جرى توزيع هذه التنسيقات العريضة بشكل عشوائي غير منتظم عبر الجدول لمحاكاة الظروف الواقعية التي تنشأ عادة عندما يتولى مدخل البيانات تمييز بعض السطور يدوياً في فترات زمنية متباعدة استناداً إلى معطيات ظرفية خاصة، ودون إدراج عمود تصنيفي موازٍ يوثق سبب هذا التنسيق في وقته.
4.2 الدلالات الوظيفية لتنسيق الخلايا المدروسة بالخط العريض
في السيناريو التطبيقي المعتمد، لا يمثل الخط العريض مجرد لمسة شكلية اعتباطية، بل يحمل دلالات وظيفية وإحصائية محددة تعكس مشكلات واقعية في تحليل النظم؛ إذ خُصص هذا التنسيق في جدولنا للدلالة على فئتين أساسيتين من البيانات: الفئة الأولى تمثل “القيم المتطرفة إحصائياً” (Outliers) التي تجاوزت فيها المخرجات ثلاثة انحرافات معيارية عن المتوسط الحسابي العام، وتتطلب فحصاً معمقاً وتدقيقاً مستقلاً لعزل أخطاء القياس عن المتغيرات الأصيلة. وتوضح الدراسات السلوكية في بيئات القرار الرقمي أن تمييز هذه الأنماط يسهم في تقليل الأخطاء الإجرائية وتحسين سرعة استرجاع المهام المؤجلة (Oksanen et al., 2014).
أما الفئة الثانية من السجلات المنسقة بالخط الغامق، فتمثل صفوف “المجاميع الفرعية” (Subtotals) التي أدرجها المحلل في نهاية كل قطاع جغرافي لتقييم الأداء المرحلي. إن بقاء هذه الصفوف مدمجة بصرياً فقط دون تمييز تصنيفي كودي يؤدي إلى كارثة إحصائية عند حساب المتوسط العام أو الانحراف المعياري لكامل العمود، حيث ستُحسب القيم التجميعية مرتين، مما يشوه النتائج النهائية. لذا، فإن القدرة على تصفية وعزل هذه الصفوف المنسقة بالخط العريض تعد مطلباً حيوياً لتنظيف البيانات وضمان الاتساق الرياضي للتحليلات اللاحقة.
4.3 التحقق من خلو البيانات من الأخطاء التنسيقية المضللة
قبل الشروع في تطبيق خوارزمية التصفية، يجب إخضاع مصفوفة البيانات التجريبية لعمليات مراجعة صارمة للتأكد من خلوها من الممارسات التنسيقية المضللة التي قد تفضي إلى نتائج زائفة. تتمثل أولى هذه الممارسات في التأكد من أن خاصية الخط العريض قد طُبقت على كامل الخلية وليس على جزء من محتواها النصي؛ إذ إن تظليل كلمة واحدة وجعلها غامقة داخل خلية تحتوي على عدة كلمات يجعل خاصية Font.Bold تعيد قيمة غير حاسمة، مما قد يربك عملية المعالجة المنطقية إذا لم تُصمم الدالة للتعامل مع هذا التباين الشكلي.
كما تشمل إجراءات التحقق تنظيف النطاق من المسافات البادئة أو اللاحقة الزائدة (Leading and Trailing Spaces) والتنسيقات المتعارضة، مثل دمج الخلايا العشوائي (Merged Cells) الذي يعطل بنية القوائم المترابطة. كذلك تم توحيد نوع الخط المستخدم (مثل استخدام خط Segoe UI أو Calibri بحجم موحد لكافة السجلات)، وذلك لضمان أن التباين المرصود يعود حصراً إلى سمك وزن الخط (Regular vs. Bold) وليس إلى اختلافات في خصائص عائلات الخطوط (Font Families) التي قد تعطي انطباعاً زائفاً بالسماكة، مما يرفع من موثوقية التجربة ودقتها الإجرائية.

5. تطبيق الدالة المخصصة وتوليد مخرجات العمود المساعد المنطقي
5.1 إنشاء العمود المساعد وتحديد موضعه في الهيكل العام للجدول
تمثل الاستعانة بـ “العمود المساعد” (Helper Column) ركيزة مركزية في منهجيات تنظيف وتحليل البيانات في بيئة إكسيل؛ حيث يعمل هذا الحقل الإضافي كجسر يعبر بالبيانات من حالتها الوصفية أو التنسيقية المعقدة إلى حالة رقمية أو منطقية قياسية يسهل على أدوات التصفية والفرز استيعابها. لإعداد هذا العمود، نتوجه إلى الجدول التجريبي ونحدد العمود الشاغر الملاصق مباشرة للبيانات (وليكن العمود E)، ثم ندرج في صف الرأس (الصف 1) عنواناً دلالياً واضحاً يعبر عن وظيفته، مثل حالة_الخط_العريض أو Is_Bold_Flag.
إن وضع العمود المساعد مباشرة بجوار النطاق المجدول يضمن الحفاظ على اتساق الهيكل الجدولي، ويتيح لمحرك إكسيل التعرف التلقائي على هذا العمود كجزء لا يتجزأ من قاعدة البيانات عند استدعاء أدوات التحليل، مما يسهل سحب المعادلات دون انقطاع. وعلاوة على ذلك، يمثل العمود المساعد أداة توثيقية ممتازة لمسار المعالجة، حيث يسمح للمدقق الخارجي بفحص آلية التحويل خطوة بخطوة والتأكد من مطابقة النتائج للمواصفات الحسابية دون إخفاء المنطق الرياضي داخل أدوات معتمة.
5.2 كتابة الصيغة الرياضية واستدعاء دالة FindBold في الخلايا
عقب تهيئة رأس العمود المساعد، ننتقل إلى الخلية الأولى التابعة للنطاق البياني الفعلي، وهي الخلية E2، للبدء في كتابة الصيغة الحسابية التي تستدعي الدالة المخصصة التي شيدناها سابقاً في محرر VBA. نقوم بإدخال علامة التساوي متبوعة باسم الدالة والمحدد المرجعي للخلية المراد فحصها، كما يلي:
=FindBold(A2)
بمجرد الضغط على زر الإدخال (Enter)، يقوم مترجم إكسيل بتحويل الطلب إلى محرك VBA المدمج، والذي ينفذ كود الدالة على محتويات الخلية A2؛ فإذا كانت محتويات هذه الخلية مصوغة بالخط العريض، فإن الدالة تُرجع فوراً القيمة المنطقية الموجبة (TRUE)، بينما تُرجع القيمة المنطقية السالبة (FALSE) إذا كان الخط عادياً. إن هذا التحول المنطقي يختزل كافة الخصائص الجمالية والمطبعية في ناتج بولياني ثنائي حاسم لا يحتمل التأويل، مما يمهد الطريق لاستخدامه كمعيار فرز لا تشوبه شائبة، متوافقاً مع النماذج التحليلية المتقدمة التي تتناول كفاءة تدفق المعلومات وحسابات النظم الخوارزمية (Nguyen et al., 2023).
5.3 سحب الدالة وتعميمها عبر النطاق الكامل باستخدام أدوات التعبئة
بعد التحقق من صحة المخرج المنطقي في الخلية الأولى، يتعين تعميم هذه الدالة الحسابية عبر كامل سجلات الجدول وصولاً إلى الخلية E101. وتتحقق هذه الخطوة بكفاءة متناهية عبر استخدام “مقبض التعبئة التلقائية” (AutoFill Handle)، وهو المربع الصغير الواقع في الركن السفلي الأيسر (أو الأيمن بحسب اتجاه الواجهة) لخلية الصيغة النشطة؛ حيث يمكن النقر عليه نقراً مزدوجاً بالماوس، أو سحبه يدوياً لأسفل حتى نهاية النطاق.
تستفيد هذه العملية من ميزة “الإشارة النسبية” (Relative Reference) المدمجة في إكسيل، حيث يتحول المرجع تلقائياً من A2 إلى A3، ثم إلى A4، وصولاً إلى A101، مما يتيح فحص كل صف بصورة مستقلة ومطابقة تماماً لموقعه الأصلي. يتبع ذلك إجراء تحقق بصري أولي للمقارنة بين حالة الخط في العمود A والقيمة المتولدة في العمود E للتأكد من عدم وجود إزاحات مكانية أو أخطاء حسابية، والتأكد من استجابة الدالة لكافة التنسيقات الموضوعة ضمن سيناريو التطبيق المعياري.

6. تنفيذ إجراءات التصفية وعزل البيانات المنسقة بالخط العريض
6.1 تفعيل أدوات الفرز والتصفية القياسية (AutoFilter) على الجدول
مع اكتمال بناء وتعميم العمود المساعد واستقراره على قيمتي TRUE وFALSE، تصبح مصفوفة البيانات مهيأة بالكامل للخضوع لعمليات التصفية الميكانيكية المعتادة. لتفعيل هذه الأداة، يحدد المستخدم أي خلية تقع ضمن نطاق صف الرؤوس (الصف 1)، ثم يتوجه إلى الشريط العلوي وينقر على تبويب “بيانات” (Data). ومن داخل مجموعة أدوات “الفرز والتصفية” (Sort & Filter)، يتم النقر على أيقونة “تصفية” (Filter) التي يرمز لها برمز القمع، أو الاستعانة بالاختصار السريع من لوحة المفاتيح (Ctrl + Shift + L).
يترتب على هذا الإجراء ظهور أسهم منسدلة صغيرة في الجانب الأيسر لكل عنوان من عناوين الأعمدة في الجدول. يجب على المحلل في هذه المرحلة التأكد بصرياً من أن نطاق التصفية قد شمل العمود المساعد الجديد حالة_الخط_العريض؛ إذ يشير ظهور السهم في خلية هذا العنوان إلى نجاح إكسيل في دمج المتغير المنطقي ضمن مصفوفة التصفية العامة، مما يجعل الجدول مستعداً لعمليات العزل والاختيار الشرطي.
6.2 عزل السجلات عبر معيار القيمة المنطقية الموجبة (TRUE)
لعزل السجلات المنسقة بالخط العريض حصراً وإخفاء باقي السجلات العادية، يتوجه المحلل إلى سهم التصفية المنسدل المتواجد في رأس العمود المساعد حالة_الخط_العريض ويقوم بالنقر عليه. تنبثق عندئذ قائمة الفرز والتصفية المدمجة التي تعرض كافة القيم المتمايزة الموجودة في هذا العمود، والتي ستنحصر في هذا السيناريو في خيارين فقط هما: (TRUE) و(FALSE)، مع وجود خيار “تحديد الكل” مفعل افتراضياً.
تتطلب عملية العزل المنهجي إزالة علامة الاختيار من مربع “تحديد الكل” (Select All)، ومن ثم وضع علامة الاختيار حصراً داخل مربع القيمة (TRUE). بمجرد النقر على زر “موافق” (OK)، يعيد محرك إكسيل بناء المشهد البصري للورقة بصورة فورية، حيث تختفي كافة الصفوف التي تحمل نصوصاً عادية وقيم FALSE، وتبقى معروضة أمام الباحث فقط تلك الصفوف التي احتوت في الأصل على خطوط عريضة. وبذلك تكتمل عملية تحويل الخاصية المطبعية البحتة إلى معيار فرز فعال دون إهدار لسياق البيانات.
6.3 إجراء التحليل الميداني على البيانات المستخرجة وتأكيد الدقة
عقب إتمام عملية التصفية بنجاح، تتاح أمام المحلل فرصة إجراء دراسات إحصائية نوعية على السجلات المستخلصة دون تشويش من بقية عناصر المصفوفة. في هذا السياق، يوصى بالاعتماد على دالة المجاميع الجزئية SUBTOTAL (مثل استخدام المعادلة =SUBTOTAL(109, D2:D101) لجمع القيم)، بدلاً من الدالة التقليدية SUM؛ وذلك لأن دالة SUBTOTAL صُممت خوارزمياً لتتجاهل الصفوف المخفية بفعل عامل التصفية، مما يوفر قياسات دقيقة تخص فقط العينات المنسقة بالخط العريض دون احتساب القيم المحجوبة.
بالإضافة إلى ذلك، يستطيع الباحث نسخ هذه السجلات المصفاة ولصقها في ورقة عمل جديدة بالكامل بهدف توليد تقارير تدقيق مستقلة أو إرسالها إلى لجان المراجعة والتحقيق المحاسبي. وعند الرغبة في استئناف العمل على المصفوفة الكلية، يمكن ببساطة فتح قائمة التصفية للعمود المساعد واختيار “مسح عامل التصفية” (Clear Filter)، أو استخدام الأمر الشامل لإلغاء التصفية؛ لتعود كافة السجلات للظهور مجدداً بسلامة تامة وبكامل بنائها الأصلي، مما يؤكد مرونة هذه المنهجية وقابليتها للعكس في أي وقت دون الإضرار ببيانات المصنف.

7. التقنيات البديلة للتصفية بالخط العريض دون اللجوء إلى أكواد VBA
7.1 استخدام خاصية البحث والاستبدال المتقدم لاصطياد الخلايا الغامقة
في كثير من البيئات الوظيفية والأكاديمية، قد تُفرض قيود صارمة على استخدام بيئة Visual Basic for Applications إما بسبب لوائح أمن المعلومات التي تحظر تشغيل الأكواد، أو لعدم إلمام المستخدم بأساسيات البرمجة. في مثل هذه الظروف، تبرز خاصية “البحث والتحديد المتقدم” (Advanced Find & Select) كبديل تكتيكي فعال يتيح اصطياد الخلايا العريضة بالاعتماد على الأدوات المدمجة في الواجهة الرسومية لإكسيل. تبدأ هذه المنهجية بالضغط على الاختصار المرجعي (Ctrl + F) لفتح نافذة البحث، ثم النقر على زر “خيارات” (Options) لتوسيع معايير البحث وإظهار خصائص التنسيق الخفية.
من داخل النافذة الموسعة، يتم النقر على زر “تنسيق” (Format)، واختيار تبويب “خط” (Font)، ثم تحديد نمط الخط ليكون “عريض” (Bold) بصورة حصرية مع ترك كافة الحقول الأخرى شاغرة لضمان عدم تقييد البحث بنوع خط أو حجم معين. بعد النقر على “موافق”، يتم الضغط على خيار “بحث عن الكل” (Find All)، ليقوم محرك البحث بمسرد كامل لكافة الخلايا الغامقة في أسفل النافذة. يقوم المستخدم حينها بالضغط على (Ctrl + A) لتحديد كافة النتائج المرصودة دفعة واحدة، ثم إغلاق النافذة والتوجه إلى تبويب الصفحة الرئيسية لمنح هذه الخلايا المحددة لون تعبئة مميزاً (مثل اللون الأصفر). وبمجرد تلوينها، يصبح بمقدور المستخدم استخدام ميزة التصفية الافتراضية “تصفية حسب لون الخلية” (Filter by Cell Color) لعزل تلك السجلات بضغطة زر ودون كتابة سطر برمجي واحد.
7.2 توظيف تقنيات ماكرو إكسيل 4.0 القديمة عبر النطاقات المسماة (GET.CELL)
تمثل تقنية ماكرو إكسيل 4.0 (المعروفة بـ XLM) حلاً تقنياً تاريخياً وفريداً، إذ تعود إلى إصدارات البرنامج التي سبقت إدماج بيئة VBA في تسعينيات القرن الماضي، ولكنها لا تزال مدعومة حتى اليوم لأغراض التوافق الرجعي. توفر هذه التقنية دالة قديمة شهيرة تُعرف باسم GET.CELL قادرة على قراءة البيانات الوصفية للخلايا بما في ذلك خصائص الخطوط. تأخذ هذه الدالة معيارين أساسيين: رقم نوع الخاصية، والمرجع المكاني للخلية؛ حيث يمثل الرقم 20 الشفرة المخصصة للتحقق من سماكة الخط، لتعيد القيمة TRUE إذا كان الخط غامقاً وFALSE إذا كان عادياً، وفق الصيغة =GET.CELL(20, Sheet1!$A2).
نظراً لأن إكسيل يحظر إدخال دوال XLM مباشرة في خلايا ورقة العمل، فإن المنفذ الوحيد لتشغيلها يكمن في تغليفها داخل “نطاق مسمى” (Defined Name). يتم ذلك عبر التوجه إلى تبويب “صيغ” (Formulas)، والنقر على “إدارة الأسماء” (Name Manager)، ثم إنشاء اسم جديد وليكن CheckBold، وإدخال صيغة GET.CELL داخل حقل “يشير إلى” مع استخدام التثبيت النسبي للصفوف (مثل تثبيت العمود A وإطلاق الصف 2). بعد حفظ الاسم، ينتقل المحلل إلى خلايا العمود المساعد ويكتب ببساطة الصيغة =CheckBold، لتولد النتيجة المنطقية وتتيح التصفية لاحقاً بذات الكفاءة المعهودة لدوال VBA.
7.3 المقارنة المنهجية بين كفاءة الدوال البرمجية والحلول البديلة
تستوجب الرصانة الأكاديمية إجراء موازنة تقنية مقارنة بين مسارات العمل المتاحة لاختيار الأسلوب الأنسب لطبيعة المهمة التحليلية؛ كما يوضح الجدول المقارن التالي الذي يفصل بين المعايير التشغيلية الثلاثة:
- دوال VBA المخصصة (UDF): تمتاز بالمرونة العالية والقدرة على التكيف مع التغيرات البرمجية المعقدة، ولكنها تتطلب حفظ المصنف بصيغة تدعم الماكرو (XLSM)، وتواجه أحياناً حظراً أمنياً في الشبكات المؤسسية.
- أسلوب التلوين عبر البحث والاستبدال: لا يتطلب أي أكواد أو امتدادات خاصة مما يجعله آمناً تماماً وسهل التداول بنسبة 100%، ولكنه يعاني من كونه حلاً استاتيكياً ثابتاً لا يستجيب لأي تعديل لاحق في البيانات دون إعادة تنفيذ الخطوات كاملة.
- نطاقات ماكرو إكسيل 4.0 (GET.CELL): تقدم أداءً سريعاً دون استهلاك للذاكرة وتعمل بصيغ رياضية شبيهة بالدوال، غير أنها تتطلب أيضاً صيغة XLSM، وتعتبرها مايكروسوفت تقنية متقادمة قد تُسحب أو تُحظر في التحديثات الأمنية المستقبلية لنظام مايكروسوفت 365.
وبناءً على هذه المقارنة، يُعد استخدام دوال VBA الخيار الأمثل لقواعد البيانات الديناميكية التي تتطلب تحليلاً مستمراً، بينما يظل حل التلوين عبر أداة البحث هو المسار الأفضل للتقارير اللحظية لمرة واحدة (Ad-hoc Analysis) التي يتعين مشاركتها مع أطراف متعددة دون القلق من إعدادات الأمان.

8. التفاعل المعقد بين الخط العريض اليدوي والتنسيق الشرطي (Conditional Formatting)
8.1 الفروق الهيكلية في نموذج كائنات إكسيل بين التنسيق المباشر والشرطي
تُعد معالجة التنسيق المطبق عبر قواعد “التنسيق الشرطي” (Conditional Formatting) إحدى أعقد المسائل التقنية في نموذج كائنات إكسيل (Excel Object Model)؛ إذ تنشأ المشكلة من التمايز المعماري الصارم بين التنسيق اليدوي المباشر والتنسيق المشروط بقواعد رياضية. عندما يضغط المستخدم على اختصار الخط العريض (Ctrl + B)، تتغير الخاصية المادية المباشرة لكائن الخط التابع للنطاق (أي تعديل القيمة المخزنة في Range.Font.Bold إلى TRUE). وفي المقابل، يعمل محرك التنسيق الشرطي كـ “طبقة إظهار فوقية” (Visual Presentation Overlay) ترسم التنسيق على شاشة المستخدم إذا تحقق شرط معين، دون أن تُغير القيمة الأساسية لخصائص النطاق في قاعدة البيانات الداخلية للكائن.
لهذا السبب المعماري الدقيق، تفشل دالة VBA البسيطة التي أنشأناها سابقاً (FindBold) فشلاً ذريعاً في رصد التنسيق العريض إذا كان ناتجاً عن قاعدة تنسيق شرطي؛ فالخاصية r.Font.Bold ستظل ترجع القيمة FALSE طالما أن المستخدم لم يقم بتغميق الخط يدوياً، على الرغم من أن الخلية تظهر أمام العين المجردة بخط عريض داكن للغاية. هذا التناقض بين الواقع المرئي والتفسير البرمجي يمثل فخاً تحليلياً يقع فيه كثير من مدققي النظم، ويتطلب فهماً متعمقاً لطريقة تخزين القواعد المنطقية واستدعائها عبر المحركات المتطورة.
8.2 استخدام خاصية DisplayFormat لحل إشكالية التنسيق الديناميكي
لتجاوز هذا القصور الهيكلي، استحدثت مايكروسوفت بدءاً من إصدار إكسيل 2010 كائناً برمجياً متقدماً يُعرف باسم DisplayFormat. يمتلك هذا الكائن مسار وصول يتيح استقراء الحالة المرئية النهائية للخلية كما تنعكس على شاشة المستخدم تماماً، بغض النظر عما إذا كان مصدر هذا التنسيق هو التدخل اليدوي، أو الأنماط المدمجة، أو قواعد التنسيق الشرطي التراكمية. وبناءً على ذلك، تصاغ الشيفرة القادرة على رصد الخط العريض الديناميكي كما يلي: r.DisplayFormat.Font.Bold.
بيد أن هذا الحل يفرض تحدياً برمجياً جديداً لا يقل خطورة؛ إذ قيدت مايكروسوفت استخدام الكائن DisplayFormat بحيث يُمنع استدعاؤه منعاً باتاً من داخل الدوال المعرفة من قبل المستخدم (UDF) التي تُكتب داخل خلايا ورقة العمل، وسيسفر استدعاؤه عن خطأ فوري في قيمة الخلية (#VALUE!). ترجع هذه القيود البرمجية إلى الرغبة في تفادي حدوث حلقات استدعاء حسابية مفرطة تؤدي إلى تجميد البرنامج وانهيار الذاكرة. وعليه، فإن توظيف DisplayFormat يقتصر حكماً على العمل من خلال “إجراءات فرعية مستقلة” (Sub Procedures) تُشغل عبر زر أو ماكرو مخصص يقوم بمسح النطاق، وقراءة الحالة المرئية، وتدوين النتيجة المنطقية كقيمة ثابتة في العمود المساعد.
8.3 استراتيجيات تجاوز تعارض التنسيق المزدوج أثناء التصفية
لمعالجة ظاهرة التنسيق المزدوج (التي تجمع بين خطوط عريضة موضوعة يدوياً وأخرى متولدة شرطياً في ذات الجدول)، يجب تبني استراتيجيات معالجة متقدمة تضمن الاتساق التحليلي للبيانات. تتمثل الاستراتيجية الأولى في “محاكاة الشروط الحسابية”؛ فبدلاً من محاولة استقراء التنسيق البصري للخلية المشروطة، يقوم المحلل بعزل المعادلة المنطقية التي بُنيت عليها قاعدة التنسيق الشرطي (مثل: إذا كانت القيمة تتجاوز 10,000) وإعادة كتابة تلك المعادلة بصورة صريحة داخل العمود المساعد مدمجة مع دالة فحص التنسيق اليدوي باستخدام دالة OR المنطقية، مما يضمن اصطياد الحالتين معاً بمعادلة موحدة.
أما الاستراتيجية المتقدمة الثانية، فتعتمد على تطوير كود ماكرو تنفيذي يقوم بأتمتة العملية؛ حيث يمر الإجراء على كافة خلايا النطاق، ويفحص الخاصية الشاملة Cell.DisplayFormat.Font.Bold، وعند ثبوت تحققها، يكتب القيمة TRUE في العمود المساعد. هذا الإجراء يحول الخصائص العرضية المؤقتة إلى قيم وصفية مستقرة غير مشروطة، مما يوفر بيئة تصفية موحدة وموثوقة بنسبة 100%، ويجنب المؤسسات أخطاء التفسير التي قد تنشأ عن قراءة مجتزأة لقواعد الجداول، وهي مسألة تتماشى مع المنهجيات المتبعة في ضبط جودة نظم النقل والبيانات الذكية (Abdur-Rahim et al., 2016).

9. بروتوكولات حفظ المصنفات الحاوية على وحدات ماكرو وإدارتها
9.1 الفوارق الامتدادية وأهمية التخزين بصيغة مصنف إكسيل يدعم الماكرو (XLSM)
يمثل الحفظ السليم لمصنف العمل الخطوة الحاسمة التي تفصل بين استدامة الحل البرمجي أو فقدانه الكامل إلى غير رجعة؛ فالامتداد الافتراضي لمصنفات إكسيل الحديثة هو XLSX، وهو مصمم معمارياً كحزمة مضغوطة من ملفات XML المجردة من أي قدرة على تخزين نصوص برمجية قابلة للتنفيذ. فإذا قام المستخدم بكتابة دالة مخصصة في محرر VBA، ثم حفظ المصنف بالامتداد القياسي XLSX متجاهلاً النوافذ التحذيرية، فإن محرك إكسيل يقوم بحذف كافة الوحدات النمطية (Modules) والأكواد البرمجية فورا وبشكل نهائي، لتتحول نتائج الدالة في العمود المساعد عند إعادة فتح الملف إلى رسائل خطأ صامتة من النوع (?NAME#).
لضمان حماية التعليمات البرمجية واستمرار عمل دالة FindBold، يتحتم على المحلل الانتقال إلى قائمة “ملف”، واختيار “حفظ باسم” (Save As)، ثم تغيير “نوع الحفظ” (Save as type) من القائمة المنسدلة إلى “مصنف إكسيل يدعم وحدات الماكرو” وامتداده Excel Macro-Enabled Workbook (*.xlsm)، أو اختيار النسخة الثنائية المتقدمة Excel Binary Workbook (*.xlsb). يحافظ هذا الامتداد على بنية الأكواد، ويسمح لمترجم الفيجوال بيسك بالعمل تلقائياً بمجرد فتح الملف وإعادة حساب المصفوفات الجداولية دون أدنى خلل.
9.2 إدارة شهادات التوثيق الرقمي وتجاوز رسائل التحذير الأمنية
عند تداول مصنفات العمل التي تحمل الامتداد XLSM بين الباحثين أو موظفي الإدارات المختلفة، تظهر رسائل التحذير الأمنية في الشريط الأصفر أعلى المصنف، محذرة من إيقاف وحدات الماكرو لحماية النظام. لتفادي هذا التعطيل الإجرائي وتسهيل التبادل المهني، يجب تطبيق بروتوكولات التوثيق الرقمي من خلال أداة التوقيع المدمجة في حزمة أوفيس والمعروفة باسم SelfCert.exe؛ حيث تتيح هذه الأداة إنشاء شهادة رقمية محلية باسم المستخدم أو المختبر البحثي لختم المشروع البرمجي بختم إلكتروني معتمد يضمن عدم التلاعب بالشيفرة.
عقب توليد الشهادة، يتوجه المطور إلى محرر VBA، ويختار من قائمة “أدوات” (Tools) خيار “توقيع رقمي” (Digital Signature)، ثم يحدد الشهادة المنشأة ويحفظ المصنف. وعندما يقوم زملاء العمل بإضافة هذه الشهادة أو مجلد العمل بأكمله إلى قائمة “المواقع الموثوقة” (Trusted Locations) في مركز التوثيق، فإن إكسيل يتجاوز فحص التحذير ويقوم بتشغيل دوال التصفية تلقائياً وبأقصى درجات الانسيابية والأمان، دون إشعار المستخدم برسائل مقلقة تعيق تدفق العمل الميداني.
9.3 تأمين التعليمات البرمجية من التعديل غير المصرح به
في المشروعات البحثية والمؤسسية الكبرى، تقتضي قواعد الحوكمة الرقمية حماية الأكواد والدوال المعرفة من التعديل العرضي أو غير المصرح به من قبل المستخدمين النهائيين للجدول، حفاظاً على استقرار العمليات المنطقية ودقة مخرجات التصفية. يوفر محرر VBA آلية تأمين مدمجة وفعالة تعتمد على تشفير المشروع بكلمة مرور مخصصة؛ ويتم تفعيل ذلك بالنقر بزر الفأرة الأيمن على اسم المشروع في نافذة Project Explorer، ثم اختيار “خصائص مشروع VBA” (VBAProject Properties).
داخل نافذة الخصائص، ينتقل المستخدم إلى تبويب “الحماية” (Protection)، ويفعل خيار “تأمين المشروع للعرض” (Lock project for viewing)، ثم يحدد كلمة مرور قوية ويؤكدها. يترتب على هذا الإجراء إغلاق الوحدة النمطية بالكامل؛ حيث لن يتمكن أي طرف يفتح المصنف من قراءة منطق دالة FindBold أو التعديل في صياغتها ما لم يُدخل كلمة المرور الصحيحة. ومع ذلك، تظل الدالة تعمل بحرية تامة وتؤدي وظائف التصفية في ورقة العمل دون قيود، مما يحقق التوازن الأمثل بين إتاحة الاستخدام الوظيفي وحماية الملكية الفكرية للبنية البرمجية، لا سيما عند نقل الملفات إلى بيئات السحابة الهجينة وتطبيقات النماذج المتطورة (Xie et al., 2024).

10. استكشاف الأخطاء ومعالجة المشكلات التقنية وتطوير الأداء
10.1 معالجة مشكلة عدم التحديث التلقائي للدالة عند تغيير التنسيق
يواجه مستخدمو الدوال المعرفة في إكسيل سلوكاً تقنياً يثير كثيراً من الحيرة؛ ويتمثل في عدم استجابة الدالة FindBold للتحديث التلقائي اللحظي عند قيام المستخدم بتعديل سمك خط إحدى الخلايا يدوياً (كأن يقوم بتغميق خلية كانت عادية عبر الاختصار Ctrl + B). يكمن السبب الجوهري وراء هذا السلوك في طبيعة محرك الحسابات في إكسيل (Calculation Engine)؛ فالبرنامج يرصد فقط التغيرات الواقعة في “قيم الخلايا” أو “الصيغ الرياضية” لإطلاق دورة إعادة الحساب (Re-calculation Dependency Tree)، في حين أن تعديل “التنسيقات المظهرية” لا يطلق أي حدث برمجي يحفز إعادة تقييم الدوال.
لحل هذه المعضلة وإجبار الدالة على ملاحقة التعديلات التنسيقية، يجب تزويد الشيفرة البرمجية بأمر تحفيزي يجعلها دالة متطايرة؛ وذلك عبر كتابة التعليمة Application.Volatile في أول سطر تنفيذي داخل الدالة، كما يتضح في البناء التالي:
Function FindBold(r As Range) As Boolean
Application.Volatile True
FindBold = r.Font.Bold
End Function
يؤدي هذا التعديل إلى إعادة حساب ناتج الدالة مع كل عملية حسابية تجري في أي خلية داخل المصنف. ومع ذلك، يظل الضغط على مفتاح (F9) أو (Shift + F9) هو الوسيلة اليدوية الأضمن لإجبار إكسيل على إعادة تقييم كافة الصيغ في الورقة النشطة وتحديث قيم العمود المساعد فور الانتهاء من إدخال أي تعديلات تنسيقية على النصوص.
10.2 التعامل مع الخلايا المدمجة وحالات التنسيق المتعدد داخل الخلية الواحدة
تفرض التخطيطات غير المنتظمة في جداول البيانات عقبات إجرائية ملحوظة، ولا سيما عند احتواء النطاق على خلايا مدمجة (Merged Cells) أفقياً أو عمودياً. ففي نموذج كائنات إكسيل، لا تُخزن الخصائص الفعلية للخلية المدمجة إلا في الخلية العلوية اليمنى من النطاق المدمج، بينما تعامل الخلايا الأخرى المندرجة ضمن الدمج كقيم فارغة. وإذا أشارت دالة الفحص إلى إحدى هذه الخلايا الثانوية، فقد تعيد قيمة سالبة أو خطأ حسابياً، مما يستدعي تعديل الكود ليفحص خاصية r.MergeArea.Cells(1, 1).Font.Bold لضمان استرجاع حالة الخط الصحيحة لكامل المساحة المدمجة.
وفي سياق موازٍ، إذا كانت الخلية الواحدة تضم تنسيقاً خطياً متعدداً (Mixed Formatting) حيث تتجاور الكلمات العادية مع العريضة، فإن الحل التقني يكمن في تحديد سياسة الفرز المعتمدة؛ فإذا كان الهدف هو اعتبار الخلية غامقة بمجرد احتواء حرف واحد عريض، يمكن للمطور توسيع الكود البرمجي ليدمج حلقة تكرارية تفحص أحرف الخلية عبر الخاصية r.Characters(i, 1).Font.Bold. هذا المستوى من التفصيل المنهجي يعزز من مرونة الخوارزمية، ويجعلها قادرة على التعامل مع عينات البيانات اللغوية والنصية غير المتجانسة والتي تكرر في دراسات تحليل المحتوى واستخراج النصوص (Delanys et al., 2020).
10.3 تحسين كفاءة الحساب في قواعد البيانات الضخمة (Large Scale Datasets)
عند تطبيق الدوال المخصصة على مصفوفات بيانات عملاقة تضم مئات الآلاف من الصفوف، قد يؤدي استخدام دالة متطايرة مثل Application.Volatile إلى استنزاف هائل لموارد المعالج وبطء شديد في استجابة النظام، نتيجة لمحاولة إكسيل فحص خصائص مئات الآلاف من الخطوط في الذاكرة بصورة متكررة. لتحسين هذا الأداء الزمني وتخفيف الحمل الحسابي، يُنصح بتجنب الدوال المتطايرة واللجوء بدلاً من ذلك إلى “ماكرو معالجة تتابعي” (Batch Processing Macro) يُنفذ لمرة واحدة فقط عند الطلب.
يتحقق هذا التحسين بتعطيل تحديث الشاشة وتعليق الحسابات التلقائية مؤقتاً أثناء تنفيذ الماكرو باستخدام التعليمات البرمجية التالية:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
يقوم الماكرو بقراءة نطاق البيانات دفعة واحدة وتخزينه في مصفوفة داخل الذاكرة (Memory Array)، ثم كتابة النتائج المنطقية المباشرة كقيم نصية ثابتة في العمود المساعد، قبل أن يعيد تفعيل تحديث الشاشة والحساب التلقائي. هذه الاستراتيجية المتقدمة تقلص الزمن الحسابي بنسب تتجاوز 90%، مما يجعل عملية التصفية وفق التنسيقات المطبعية قابلة للتطبيق العملي على أضخم قواعد البيانات المؤسسية بكفاءة استثنائية وبأقل استهلاك ممكن لموارد الحاسوب.

الخلاصة
استعرض هذا المقال المعمق المنهجية المتكاملة لحل معضلة التصفية حسب نمط الخط العريض في مايكروسوفت إكسيل؛ وهي الإشكالية الناتجة عن الفصل الهيكلي بين مصفوفة البيانات وقواعد التنسيق الشكلي في برمجيات الجداول الحديثة. ومن خلال تتبع المسار الإجرائي خطوة بخطوة، تبين أن تجاوز هذا القصور لا يتطلب بالضرورة أدوات خارجية معقدة، بل يعتمد على فهم نموذج كائنات إكسيل وتوظيف أدواته المدمجة لتحويل الخصائص المطبعية الكامنة إلى بيانات وصفية صريحة وثنائية.
بدءاً من إظهار تبويب المطور وضبط مستويات الأمان، ومروراً ببناء الدالة البرمجية المخصصة FindBold عبر بيئة VBA، وصولاً إلى استدعائها في عمود مساعد منطقي وتفعيل أدوات التصفية التلقائية، أصبح بإمكان المحلل عزل وتصنيف البيانات المنسقة بالخط الغامق بدقة بالغة وسرعة فائقة. كما وفر المقال حلولاً بديلة تعتمد على البحث والتلوين أو ماكرو إكسيل 4.0 للمستخدمين المقيدين بلوائح أمنية تمنع استخدام البرمجيات النصية.
ختاماً، تمتد هذه المنهجيات لتشمل معالجة التعارضات الناتجة عن التنسيق الشرطي عبر كائن DisplayFormat، وضمان سلامة المصنفات بحفظها بالامتداد المناسب XLSM، مع تحسين كفاءة التنفيذ على قواعد البيانات الضخمة. إن تحويل التنسيق البصري إلى متغيرات إحصائية منضبطة يمثل جوهر حوكمة البيانات المتقدمة، ويوفر للباحثين والمهنيين بيئة تحليلية رصينة تتلاقى فيها جاذبية العرض الشكلي مع صرامة التحليل الرياضي.

المراجع
- Diana Su Yun Tham, Paul T. Sowden, Alexandra Grandison, Anna Franklin, Anna Kai Win Lee, Michelle W. S. Ng, et al. (2019). A systematic investigation of conceptual color associations.. Journal of Experimental Psychology General. https://doi.org/10.1037/xge0000703
- Kevin M Oksanen, Emily R. Waldum, Mark A. McDaniel, Todd Samuel Braver (2014). Neural Mechanisms of Time-Based Prospective Memory: Evidence for Transient Monitoring. PLoS ONE. https://doi.org/10.1371/journal.pone.0092123
- Horia Alexandru Maior, Max L. Wilson, Sarah Sharples (2018). Workload Alerts—Using Physiological Measures of Mental Workload to Provide Feedback During Tasks. ACM Transactions on Computer-Human Interaction. https://doi.org/10.1145/3173380
- Scott M. Freeman, Sirawaj Itthipuripat, Adam Robert Aron (2016). High Working Memory Load Increases Intracortical Inhibition in Primary Motor Cortex and Diminishes the Motor Affordance Effect. Journal of Neuroscience. https://doi.org/10.1523/jneurosci.0284-16.2016
- Chengxing Xie, Canyu Chen, Feiran Jia, Ziyu Ye, Shiyang Lai, Ziniu Hu, et al. (2024). Can Large Language Model Agents Simulate Human Trust Behavior?. neural information processing systems. https://doi.org/10.52202/079017-0501
- Duc Minh Nguyen, Mohammad Nazeri, Amirreza Payandeh, Aniket Datar, Xuesu Xiao (2023). Toward Human-Like Social Robot Navigation: A Large-Scale, Multi-Modal, Social Human Navigation Dataset. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). https://doi.org/10.1109/iros55552.2023.10342447
- Jamilah Abdur-Rahim, Yoichi Morales, Pankaj Gupta, Ichiro Umata, Atsushi Watanabe, Jani Even, et al. (2016). Multi-Sensor Based State Prediction for Personal Mobility Vehicles. PLoS ONE. https://doi.org/10.1371/journal.pone.0162593
- Sarah Delanys, Farah Benamara, Véronique Moriceau, François Olivier, Josiane Mothe (2020). Psychiatry on Twitter: Content Analysis of the Use of Psychiatric Terms in French. JMIR Formative Research. https://doi.org/10.2196/18539