ما هو VBA - القيود، والآفاق، ومتى يُستبدَل، وأنماط الترحيل الواقعيّة

· آخر تحديث: · · VBA, Excel, Office, استغلال الأصول القائمة والترحيل, تطوير Windows

سجل التعديلات (3 تحديثات، آخر تحديث 3 Sep، 2026)

سجل بالتغييرات التي أُجريت على هذا المقال. وحيثما حُفظت نسخة سابقة، تبقى متاحة للقراءة عبر رابط دائم يحمل معرّف DOI.

أُضيفت روابط الاستشارة الموجودة في الأصل الياباني (consultation_services). ولم يتغيّر نصّ المقالة نفسه. قراءة النسخة السابقة لهذا التحديث (DOI: 10.5281/zenodo.22240877)
أُعيدَت الترجمة العربية كترجمة كاملة عن النص الياباني الأصلي، وأُضيفَت خريطة المعرفة.
أعيدت الترجمة كترجمة كاملة عن النص الياباني الأصلي. كانت النسخة العربية السابقة مختصراً يسقط أبواباً وجداول ورسوم Mermaid وتعليقات الأشكال وFAQ. أُعيدت هذه العناصر وفق الأصل الياباني، والادّعاءات التقنية مطابقة للنسخة اليابانية.
النشر الأول
الاستشهاد بهذا المقال(DOI: 10.5281/zenodo.21621443)

هذا المقال محفوظ على Zenodo. يرد أدناه معرّف DOI الذي يشير دائمًا إلى أحدث نسخة، ومعرّف DOI المثبَّت على النسخة التي تقرؤها.

小村 豪 (2026). ما هو VBA - القيود، والآفاق، ومتى يُستبدَل، وأنماط الترحيل الواقعيّة. شركة كومورا سوفت ذ.م.م.. https://doi.org/10.5281/zenodo.21621443 https://comcomponent.com/ar/blog/2026/03/23/000-what-is-vba-limits-future-replacement/

DOI (أحدث نسخة)
10.5281/zenodo.21621443
DOI (هذه النسخة)
10.5281/zenodo.22279877

في استشارات VBA تختلط أحاديث من هذا النوع بسرعة.

  • ما VBA أصلاً
  • يُقال إن الماكرو خطر، فهل ينبغي التوقّف عن استخدامه
  • هل سيتعذّر استخدامه قريباً
  • هل يكفي نقل الكلّ إلى Office Scripts أو Power Automate
  • هل نُبقي أصول .xlsm أو Access القائمة أم نتخلّى عنها
  • هل يجوز تشغيل Excel في دفعة ليليّة أو على خادم

هذه المواضيع لا تُحَلّ بإجابة واحدة نظيفة. ما ينبغي النظر إليه أوّلاً ليس الجدة أو القِدَم، بل أين يُشغَّل، ومن يستخدمه، وهل Excel / Access نفسه هو الـ UI، وهل التنفيذ غير مراقب.

المحاور التي تُرى أوّلاً عند الحكم على VBAمخطّط يبيّن أن الحكم على مواصلة VBA أو استبداله ينبغي أن ينظر أوّلاً إلى أين يُشغَّل ومن يستخدمه وهل Excel أو Access نفسه هو الـ UI وهل التنفيذ غير مراقب، لا إلى الجدة أو القِدَم.الجدة أو القِدَمليس المحور الذي يُرى أوّلاًالمحاور التي ينبغي رؤيتها أوّلاًأين يُشغَّلمن يستخدمههل Excel / Access نفسه هو الـ UIهل التنفيذ غير مراقب

الشكل 1: محاور الحكم على VBA ليست الجدة والقِدَم، بل مكان التشغيل والمستخدم والـ UI والتنفيذ غير المراقب.

ترتّب هذه المقالة الموضوع بهذا التسلسل: ما VBA، وأين تقع القيود، وهل سيتعذّر استخدامه، ومتى ينبغي الاستبدال، وكيف يبدو الترحيل المرحلي الواقعي. المحتوى يقوم على المعلومات الرسميّة من Microsoft التي يمكن التحقّق منها حتى مارس 2026.12345

1. الخلاصة أوّلاً

نضع الخلاصة أوّلاً.

  • VBA لغة موجَّهة بالأحداث لتوسيع تطبيقات Office لسطح المكتب. التقنية تفترض العمل داخل Excel وWord وPowerPoint وAccess وما شابه.1
  • حتى مارس 2026 على الأقل، لا يظهر في المعلومات الرسميّة من Microsoft إعلان واضح بأن «VBA نفسه سيُنهى قريباً». ما يحدث الآن أقرب إلى اتّضاح أماكن الاستخدام وشروطه منه إلى «إلغاء مفاجئ شامل».1234
  • تحديداً، لا يمكن إنشاء VBA أو تشغيله أو تحريره في Excel for the web. كذلك تُحظَر ماكروهات الملفّات ذات الأصل من الإنترنت افتراضيّاً.23
  • لذلك النقطة الآن ليست «هل نتخلّى عن VBA كلّه»، بل أيّ مجال نُبقيه في VBA وأيّ مجال نخرجه.
  • خصوصاً، المعالجة التي تحتاج تنفيذاً غير مراقب، أو تشغيلاً على خادم، أو تشغيلاً متعدّد المستخدمين، أو دعماً للمتصفّح، أو توزيعاً مركزيّاً، أو تدقيقاً صارماً أطبيعيّ ألّا تُحمَل بـ VBA وحده. Microsoft أيضاً لا توصي بأتمتة Office من جانب الخادم ولا تدعمها.6
  • وجهة الاستبدال ليست واحدة. التقسيم الواقعي: إن بقي Excel فأخرج المعالجة إلى DLL من .NET أو عمليّة أخرى، ولمسار العمل على Microsoft 365 استخدم Office Scripts + Power Automate، وللتوسيع متعدّد المنصّات Office Add-ins، وإن لم يعد Excel هو الـ UI أصلاً فأخرج إلى تطبيق Windows أو ويب.456

باختصار، الأعمليّ رؤية VBA لا كـ «تقنية تموت فوراً» بل كـ «تقنية صار موضعها الأنسب واضحاً».

كيف نرى التغيّر الجاريمخطّط يبيّن أن ما يحدث الآن ليس إلغاءً مفاجئاً شاملاً بل اتّضاح أماكن الاستخدام وشروطه، وأن النقطة ليست التخلّي عن VBA كلّه بل أيّ مجال يُبقى فيه وأيّ مجال يُخرَج.إلغاء مفاجئ شامللا يظهر في المعلومات الرسميّةاتّضاح أماكن الاستخدام وشروطهتتغيّر النقطةأيّ مجال يُبقى في VBAأيّ مجال يُخرَج

الشكل 2: النقطة ليست «هل نتخلّى عن الكلّ» بل تقسيم المجال الذي يبقى والمجال الذي يُخرَج.

في المخطّط، يشير الخطّ المتّصل إلى علاقة قائمة دائماً، ويشير الخطّ المتقطّع إلى علاقة مشروطة (شروط قيامها مذكورة في شرح كلّ علاقة في الصفحة التفصيليّة). القائمة الكاملة للعلاقات (المجموع 23، مع الأدلّة ودرجة اليقين) وتعريفات المفاهيم الرئيسة مجمّعة في صفحة تفاصيل خريطة المعرفة (باليابانية). البيانات: JSON-LD / Turtle

2. ما VBA

VBA اختصار Visual Basic for Applications، وهو نوع من Visual Basic المرفق مع Microsoft Office. توضّحه الوثائق الرسميّة من Microsoft أيضاً بأنّه لغة برمجة موجَّهة بالأحداث لتوسيع تطبيقات Office.17

المهم هنا أن رؤية VBA كـ لغة توسيع تُدخَل داخل تطبيق Office أقرب إلى الواقع من رؤيته كـ أساس تطوير تطبيقات عام.

الرؤية الصحيحة لـ VBAمخطّط يبيّن أن رؤية VBA كلغة توسيع موجَّهة بالأحداث تُدخَل داخل تطبيق Office أقرب إلى الواقع من رؤيته كأساس تطوير تطبيقات عام.بعيد عن الواقعقريب من الواقعVBAكيف نراهأساس تطوير تطبيقات عاملغة توسيع تُدخَل داخل تطبيق Officeلغة موجَّهة بالأحداث تعمل داخل Office

الشكل 3: VBA ليس أساس تطوير عامّاً، بل لغة توسيع تُدخَل داخل Office.

في Excel مثلاً يعمل قريباً من أهداف من هذا النوع.

  • Workbook
  • Worksheet
  • Range
  • الأزرار والنماذج
  • أحداث فتح المصنّف وحفظه وتغيير الخلية

أي أن قوّة VBA هي القرب الشديد من شاشة Excel أو Access ومن التقرير ومن بنية المصنّف. المستخدم يفتح Office على سطح المكتب، يضغط زراً، يعالج بيانات ملفّ محلّي أو مجلّد مشترك، ويخرج التقرير كما هو. لهذا النوع من «الأتمتة التي تكتمل في يد المستخدم» ما زالت له قوّة.1

الشيفرة الفعليّة بهذا القصر مثلاً. أصغر شكل يُربَط بزرّ على الورقة.

' يُوضَع في وحدة Excel القياسية. يُفتَرَض استدعاؤه من زرّ على الورقة
Option Explicit

Public Sub ClearMeisai()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("التفاصيل")

    If MsgBox("سيتم حذف الصف 2 فما بعد في ورقة التفاصيل. هل توافق؟", _
              vbOKCancel + vbQuestion, "تأكيد") <> vbOK Then
        Exit Sub
    End If

    ws.Rows("2:" & ws.Rows.Count).ClearContents
End Sub

ضع زراً من شكل أو عنصر تحكّم نموذج على الورقة، واختر هذا ClearMeisai من «تعيين ماكرو» بزرّ أيمن، فتعمل هذه المعالجة عند كل ضغط. ما ينبغي النظر إليه هنا هو ظهور كائنات Excel مثل ThisWorkbook وWorksheets وRows مباشرة بلا تحويل ولا استدعاء API. «لغة تعمل داخل Office» تعني تحديداً هذا القرب. بالمقابل، وجهة استبدال يضيع فيها هذا القرب لا تُكتَب بنفس عدد الخطوات.

بالمقابل، نطاق VBA الأصلي منذ البداية ليس الخادم، أو المتصفّح، أو الجوّال، أو نظام ويب متعدّد المستأجرين.

نطاق VBAمخطّط يبيّن أن VBA قريب من شاشة Excel أو Access ومن التقرير ومن بنية المصنّف، وما زال قويّاً في الأتمتة التي تكتمل في يد المستخدم، بينما الخادم والمتصفّح والجوّال ونظام الويب متعدّد المستأجرين ليست نطاقه الأصلي منذ البداية.قريب مباشرة من كائنات Excelأتمتة تكتمل في يد المستخدممجال ما زال قويّاًخادم / متصفّح / جوّال / نظام ويبليس النطاق الأصلي منذ البداية

الشكل 4: القرب من Office هو القوّة، والموضع الذي لا يحتاج ذلك القرب خارج النطاق منذ البداية.

3. لماذا ما زال يُستخدم

سبب بقاء VBA في الميدان ليس «القِدَم والجمود» وحده.

أوّلاً، يسهل أن يدخل Excel وAccess إجراء العمل نفسه لا البيانات وحدها.

  • مظهر التقرير
  • إعداد الطباعة
  • فحص الإدخال
  • ترتيب المعالجة الشهريّة
  • قواعد الاستثناء حسب القسم
  • خطوات التشغيل التي اعتادها الميدان سنوات

عند النقل إلى نظام آخر لا يكفي «ترحيل الشيفرة». المظهر والتشغيل والاستثناء والتشغيل اليومي مدمجة، فأصل VBA يحمل مواصفات أكثر ممّا يبدو.

ما يحمله أصل VBAمخطّط يبيّن أن Excel وAccess يسهل أن يدخلهما إجراء العمل نفسه من مظهر التقرير وإعداد الطباعة وفحص الإدخال وترتيب المعالجة وقواعد الاستثناء وخطوات التشغيل، وأن المظهر والتشغيل والاستثناء والتشغيل اليومي مدمجة فلا يكفي ترحيل الشيفرة.أصل Excel / Accessيدخل فيه إجراء العمل نفسهمظهر التقرير وإعداد الطباعةفحص الإدخال وترتيب المعالجةقواعد الاستثناء وخطوات التشغيلترحيل الشيفرة وحده لا يكفي

الشكل 5: أصل VBA لا يحمل الشيفرة فقط، بل إجراء العمل والتشغيل اليومي بالكامل.

كذلك VBA قريب من نموذج كائنات Office، فعدد الخطوات قليل في غرض تشغيل Excel نفسه أمام المستخدم وإرجاع النتيجة. هذا القرب مهم أيضاً عند التفكير في المرشّحين اللاحقين، وإعادة الكتابة إلى تقنية أحدث لا تعني بالضرورة الانتهاء.

في الممارسة التفكير الطبيعي كالتالي.

  • إن بقي Excel هو الـ UI، فهناك قيمة لإبقاء جزء من VBA
  • إن كان Excel إدخالاً وإخراجاً فقط، يسهل إخراج المنطق الداخلي
  • إن لم يعد Excel هو الـ UI الأصلي، يصير مرشّحاً لإعادة البناء
التفكير بموضع Excel كـ UIمخطّط يبيّن التفكير العملي: إن بقي Excel هو الـ UI فهناك قيمة لإبقاء جزء من VBA، وإن كان إدخالاً وإخراجاً فقط يسهل إخراج المنطق، وإن لم يعد هو الـ UI الأصلي يصير مرشّحاً لإعادة البناء.يبقى هو الـ UIإدخال وإخراج فقطلم يعد هو الـ UI الأصليما موضع Excelقيمة لإبقاء جزء من VBAيسهل إخراج المنطقمرشّح لإعادة البناء

الشكل 6: كون Excel هو الـ UI أو لا يفرّق اتجاه الإبقاء والإخراج وإعادة البناء.

4. القيود الرئيسة لـ VBA

4.1 الافتراض هو سطح المكتب

أكبر قيد هو هذا. VBA تقنية تعمل أساساً داخل Office لسطح المكتب.

المعلومات الرسميّة من Microsoft أيضاً تقول إن Excel for the web لا يمكن فيه إنشاء VBA أو تشغيله أو تحريره، وإن فتح مصنّف مع ماكرو وتحريره ممكن لكن تشغيل VBA غير ممكن.28

عند هذه النقطة تسوء الملاءمة مع متطلّبات من هذا النوع.

  • الاكتمال في المتصفّح
  • استخدام التوسيع نفسه عبر Mac / iPad / الويب
  • توزيع مركزي من المسؤول
  • عدم الاعتماد على تطبيق Excel لسطح المكتب المحلّي

Microsoft نفسها ترشد في وثائق VBA إلى النظر إلى Office Add-ins إن أردت توسيعاً متعدّد المنصّات.95

قيد الافتراض سطح المكتبمخطّط يبيّن أن VBA تقنية تعمل داخل Office لسطح المكتب، ولا يمكن الإنشاء أو التشغيل أو التحرير في Excel for the web، فتسوء الملاءمة مع الاكتمال في المتصفّح أو المتطلّبات عبر المنصّات، ويُرشد إلى Office Add-ins للتوسيع متعدّد المنصّات.VBAيعمل داخل Office لسطح المكتبلا إنشاء ولا تشغيل ولا تحرير في Excel for the webملاءمة سيّئة مع الاكتمال في المتصفّح أو التوزيع المركزيللتعدّد المنصّات انظر Office Add-ins

الشكل 7: أكبر قيد هو افتراض سطح المكتب.

4.2 احتكاك كبير في الأمن والتوزيع

جزء كبير من سوء الفهم بأن VBA «صار غير قابل للاستخدام» هو في الواقع تعزيز الأمن.

جعلت Microsoft ماكرو VBA في الملفّات ذات الأصل من الإنترنت محظوراً افتراضيّاً. فتح .xlsm مرفق بالبريد أو مُنزَّل لم يعد يعمل بسلاسة كما في الماضي.3

هذا الاتجاه صحيح أمنيّاً. لكن من جهة التشغيل يزداد الاحتكاك:

  • التوزيع كمرفق لا يعمل
  • القالب المُنزَّل من موقع خارجي لا يعمل
  • التعامل عبر OneDrive / SharePoint / الشبكة يصعب فهمه
  • إرشاد «فعِّل من فضلك» يصير نقطة ضعف تشغيليّة
الاحتكاك الذي يولّده حظر الماكرو الافتراضيمخطّط يبيّن أن ماكرو VBA في الملفّات ذات الأصل من الإنترنت محظور افتراضيّاً، فلا يعمل المرفق أو الملفّ المُنزَّل كما في الماضي، فيزداد احتكاك التوزيع والتشغيل.ملفّ ذو أصل من الإنترنتماكرو VBA محظور افتراضيّاًالمرفق أو التنزيل لا يعمل بسلاسةيزداد احتكاك التوزيع والتشغيلالاتجاه صحيح أمنيّاً

الشكل 8: جزء كبير من سوء الفهم بأنّه «صار غير قابل للاستخدام» هو حظر الماكرو الافتراضي.

لكن الأمر ليس «لا يعمل فانتهى». Microsoft ترتّب في الوثيقة نفسها أيضاً وسائل لتشغيل ماكرو الملفّات الموثوقة. الأربعة الشائعة في التشغيل كالتالي.3

الوسيلة ماذا تفعل المشهد المناسب
إزالة Mark of the Web ضع علامة «إلغاء الحظر» في خصائص الملفّ. Unblock-File في PowerShell يفعل الشيء نفسه ملفّ لمرّة واحدة، عدد قليل من الأشخاص
موقع موثوق الملفّات الموضوعة في مجلّد محدّد تُفتَح متجاوزة فحص Mark of the Web تقارير وقوالب ومواد داخليّة تُوزَّع بانتظام
توقيع رقمي + ناشر موثوق وقِّع الماكرو بتوقيع شيفرة، ووزّع الشهادة إلى «الناشرين الموثوق بهم» لدى المستخدم ماكرو داخلي يُوزَّع باستمرار، ماكرو مورّد
مواقع موثوق بها / منطقة الإنترانت المحلّيّة سجّل نطاق خادم الملفّات أو SharePoint في المنطقة عندما تتجمّع في مجلّد مشترك أو SharePoint

في الوقت نفسه النقاط التالية واضحة أيضاً.3

  • الموقع الموثوق والمواقع الموثوق بها تعني الثقة بكلّ ما وُضع هناك. يلزم الاقتصار على موضع يمكن فيه إدارة «من يستطيع الكتابة»
  • الناشر الموثوق إعداد لـ Windows ككلّ، وليس حديث Office وحده
  • الوظيفة الإضافيّة لـ Excel (.xla / .xlam) لا تعمل حتى مع التوقيع والثقة بالناشر إن وُجد Mark of the Web. هنا إمّا إزالة Mark of the Web أو الوضع في موقع موثوق
  • فتح مشاركة شبكيّة بعنوان IP وحده قد لا يقع في المواقع الموثوق بها ولا في الإنترانت المحلّيّة، فيُحظَر

بعبارة أخرى، إن قرّرت إبقاء VBA يلزم، بمعزل عن حديث الشيفرة، تقرير «أين تضع وكيف تثق» كتصميم توزيع. استمرار توزيع .xlsm كمرفق بريد دون تقرير ذلك هو الشكل الأكبر احتكاكاً.

أي أن مشكلة VBA لا تقتصر على «وظائف اللغة»، بل تحدث أيضاً في تصميم التوزيع والثقة.

إن أبقيت VBA فاحسم تصميم التوزيع أيضاًمخطّط يبيّن أن قرار إبقاء VBA يلزم معه، بمعزل عن حديث الشيفرة، تقرير أين تضع وكيف تثق كتصميم توزيع، وأن استمرار توزيع .xlsm كمرفق دون تقرير ذلك هو الشكل الأكبر احتكاكاً.قرار إبقاء VBAحديث الشيفرةحديث تصميم التوزيعأين تضعكيف تثقالتوزيع كمرفق .xlsm دون تقرير = أكبر احتكاك

الشكل 9: إن قرّرت الإبقاء فصمّم، بمعزل عن الشيفرة، موضع الوضع وطريقة الثقة.

4.3 حاجز 32 بت / 64 بت

Office له إصدار 32 بت وإصدار 64 بت، والافتراضي في Office 2019 وMicrosoft 365 هو 64 بت.7

لذلك شيفرة VBA القديمة، خصوصاً ما يستدعي Windows API بـ Declare، قد لا تعمل كما هي في بيئة 64 بت. Microsoft أيضاً ترشد إلى امتصاص فرق 32 بت / 64 بت بـ PtrSafe وLongPtr وLongLong وما شابه.7

ما يصعب هنا أن المشكلة لا تقتصر على الشيفرة، بل يسهل أن تصير هذه الاعتمادات مشكلة معها.

  • COM / ActiveX / OCX قديم
  • DLL خارجي بافتراض 32 بت
  • مكوّن يفترض تسجيل السجلّ
  • انحراف إعدادات الإشارة في Office

أي أن ترحيل VBA في كثير من الأحيان يصير ترتيب bitness في Office والاعتماد الخارجي أكثر منه إعادة كتابة اللغة.

حاجز 32 بت / 64 بتمخطّط يبيّن أن الافتراضي في Office 2019 وMicrosoft 365 هو 64 بت، فشيفرة Declare القديمة لاستدعاء Windows API قد تحتاج معالجة بـ PtrSafe وLongPtr، وأن COM وActiveX وDLL بافتراض 32 بت وانحراف الإشارة تصير مشكلة معها، فيصير الترحيل ترتيب اعتماد خارجي أكثر من إعادة كتابة اللغة.Office 2019 / M365 الافتراضي 64 بتاستدعاء Declare القديم قد لا يعمل كما هوامتصاص الفرق بـ PtrSafe وLongPtrCOM / ActiveX / OCX وDLL بافتراض 32 بت تصير مشكلة معهاواقع الترحيل ترتيب bitness والاعتماد الخارجي

الشكل 10: في ترحيل 64 بت يسهل أن يصير الاعتماد الخارجي مشكلة قبل الشيفرة.

4.4 لا يناسب التنفيذ غير المراقب أو التشغيل على خادم

هذه نقطة مهمّة جدّاً. Microsoft تنصّ صراحة على أنّها لا توصي بأتمتة تطبيقات Office من جانب الخادم ولا تدعمها. صُمِّم Office بافتراض سطح مكتب تفاعلي وملفّ تعريف مستخدم، وقد يحدث عدم استقرار أو deadlock في بيئة غير مراقبة.6

لذلك تكوين من هذا النوع أقرب إلى الخطر.

  • تشغيل Excel من خدمة Windows
  • أتمتة Office من ASP.NET أو DCOM
  • تدوير Excel غير المرئي طويلاً على جدولة المهام
  • إلقاء توليد التقارير على Excel على الخادم

«يعمل أحياناً» يحدث. لكن العمل شيء، والتكوين الذي يمكن دعمه شيء آخر.

إن لزم التنفيذ غير المراقب، فما ينبغي الشكّ فيه أوّلاً ليس VBA بل تكوين تشغيل تطبيق Excel نفسه.

سبب عدم الملاءمة للتنفيذ غير المراقب أو التشغيل على خادممخطّط يبيّن أن Office صُمِّم بافتراض سطح مكتب تفاعلي وملفّ تعريف مستخدم، وأن أتمتة جانب الخادم غير موصى بها ولا مدعومة، وقد يحدث عدم استقرار أو deadlock في بيئة غير مراقبة، فما ينبغي الشكّ فيه ليس VBA بل تكوين تشغيل تطبيق Excel نفسه.تكوين يشغّل Excel من خدمة أو دفعةOffice مصمَّم بافتراض سطح مكتب تفاعليقد يحدث عدم استقرار أو deadlock في بيئة غير مراقبةأتمتة جانب الخادم خارج التوصية والدعمما ينبغي الشكّ فيه ليس VBA بل تكوين تشغيل Excel

الشكل 11: «يعمل أحياناً» و«تكوين يمكن دعمه» مختلفان؛ في التنفيذ غير المراقب اشِكّ في التكوين نفسه.

4.5 يسهل أن يصير غير مواتٍ للصيانة والاختبار وإدارة الفروق

يسهل أن تنغلق شيفرة VBA داخل المصنّف أو ملفّ Access. نتيجة لذلك يسهل حدوث مشكلات من هذا النوع.

  • يصير غامضاً أيّ ملفّ هو الأصل
  • تتفرّق المسؤوليّة على النماذج والأوراق والوحدات القياسيّة
  • تنحرف إعدادات الإشارة واعتماد ActiveX حسب البيئة
  • يصعب مراجعة الشيفرة وتأكيد الفروق
  • يصعب صنع اختبار وحدة
  • عنوان خلية Excel نفسه يتصلّب كمواصفة

هذه ليست مشكلة لغة VBA وحدها، بل مشكلة بنية «حمل منطق العمل داخل ملفّ Office». في أتمتة صغيرة قد لا تصير مشكلة كبيرة، لكن عند التحوّل إلى نظام عمل تظهر فجأة.

مشكلة بنية حمل المنطق داخل ملفّ Officeمخطّط يبيّن أن VBA يسهل أن تنغلق شيفرته داخل المصنّف أو ملفّ Access، فيصير الأصل غامضاً وتتفرّق المسؤوليّة ويصعب تأكيد الفروق والاختبار، وأن ذلك لا يبرز في أتمتة صغيرة لكن يظهر فجأة عند التحوّل إلى نظام عمل.تنغلق الشيفرة داخل ملفّ Officeالأصل غامض والمسؤوليّة متفرّقةيصعب تأكيد الفروق والاختبارلا يبرز في أتمتة صغيرةيظهر فجأة عند التحوّل إلى نظام عمل

الشكل 12: ليست اللغة بل بنية «حمل منطق العمل داخل الملفّ» هي التي تولّد المشكلة.

4.6 إن وُجد اعتماد على VBScript فانتباه منفصل لازم

في 2025 أُعلن في Microsoft 365 Developer Blog أن الإيقاف التدريجي لـ VBScript على Windows قد يؤثّر أيضاً في مشاريع VBA. خصوصاً حالة تشغيل .vbs خارجي وحالة الاعتماد على إشارة VBScript.RegExp ضمن نطاق التأثير.10

في الوقت نفسه تمضي Microsoft أيضاً في معالجة بإدراج صنف RegExp افتراضيّاً في VBA في Office لـ Windows من Microsoft 365 Version 2508 (Build 19127.20154) فما فوق.10

هل يتأثّر أصلك يُحكَم بالبحث عن النقاط الثلاث التالية. بحث قائمة «تحرير» في VBE جائز، وgrep على نصّ مُخرَج إلى .bas / .cls جائز.

ما تبحث عنه السلسلة المحدّدة المعنى إن وُجدت
استخدام RegExp بالربط المتأخّر CreateObject("VBScript.RegExp") تعتمد على مكتبة VBScript
استخدام RegExp بالربط المسبق «Microsoft VBScript Regular Expressions 5.5» في إعدادات الإشارة، وNew RegExp في الشيفرة كذلك. يظهر أيضاً في قائمة إعدادات الإشارة
تشغيل .vbs خارجي مواضع تمرير .vbs إلى Run / Exec في WScript.Shell، أو السلسلة cscript / wscript تعتمد على مضيف VBScript نفسه

قائمة إعدادات الإشارة تُؤكَّد من «أدوات» ثم «مراجع» في VBE.

بالنسبة إلى RegExp من هذه، كما سبق، تمضي المعالجة بإدراج صنف RegExp افتراضيّاً في جانب VBA في Office لـ Windows من Microsoft 365 Version 2508 (Build 19127.20154) فما فوق.10 الأثقل تأثيراً هو نمط السطر الثالث «تشغيل .vbs خارجي»، وهنا يلزم النظر في تقريب المعالجة نفسها إلى جانب VBA أو إلى أساس تشغيل آخر. عند صنع سجلّ الأصول (8.1) سجّل هذه الثلاث معها حتى لا يتكرّر العمل.

المهم هنا أن إيقاف VBScript وإيقاف VBA ليسا الحديث نفسه. ليس حديث اختفاء VBA نفسه، بل الأدق الفهم بأن بعضاً من الاعتماد الخارجي المتدلّي من VBA يحتاج مراجعة.

علاقة إيقاف VBScript بـ VBAمخطّط يبيّن أن الإيقاف التدريجي لـ VBScript على Windows قد يؤثّر في حالة تشغيل .vbs خارجي أو الاعتماد على إشارة VBScript.RegExp، وأن RegExp تمضي معالجته بإدراجه افتراضيّاً في VBA في Office الجديد، وأنّه ليس الحديث نفسه عن إنهاء VBA ككلّ.الإيقاف التدريجي لـ VBScriptالاعتماد على تشغيل .vbs خارجيالاعتماد على VBScript.RegExpالنظر في التقريب إلى أساس تشغيل آخرOffice الجديد يدرجه افتراضيّاً في VBAحديث منفصل عن إنهاء VBA ككلّ

الشكل 13: ما يتأثّر هو الاعتماد المتدلّي من VBScript فقط، لا إيقاف VBA نفسه.

5. هل سيتعذّر استخدام VBA قريباً

أوّلاً، ليس حديث «يتعذّر الكلّ من الغد». لكنّه أيضاً ليس عصر «يُستخدم في أيّ موضع ولأيّ غرض».

على الأقل في قراءة المعلومات الرسميّة من Microsoft، الاتجاه الظاهر بقوّة الآن هو التالي.

  • VBA كتوسيع لـ Office سطح المكتب يستمر في الوجود1
  • جانب الويب / متعدّد المنصّات يفرّق استخدام Office Scripts وOffice Add-ins459
  • أمان توزيع الماكرو يُعامَل بصرامة أكبر من السابق3
  • المكوّنات المحيطة مثل اعتماد VBScript قد تتأثّر مستقبلاً10

علاوة على ذلك، توضّح Microsoft بشأن Office Scripts أن VBA يتمحور حول سطح المكتب، وOffice Scripts موجَّه إلى حلول سحابيّة آمنة ومتعدّدة المنصّات. وفي الوقت نفسه توضّح أيضاً أن نطاق وظائف Excel المتاحة في عميل سطح المكتب أوسع حاليّاً في VBA.4

وضع هذين جنباً إلى جنب يعطي رؤية عمليّة جدّاً.

  • في التشغيل العميق لـ Excel سطح المكتب ما زال نطاق VBA أوسع
  • في المتصفّح / M365 / مسار العمل المشترك أطبيعيّ Office Scripts أو Add-ins
  • لذلك ليس «يكفي تغيير الكلّ إلى Office Scripts» ولا «يكفي إبقاء VBA مركزاً إلى الأبد»

مستقبل VBA أطبيعيّ رؤيته كـ اتّضاح الحدود لا الاختفاء.

اتّضاح الحدود لا الاختفاءمخطّط يبيّن أن نطاق VBA ما زال أوسع في التشغيل العميق لـ Excel سطح المكتب، وأن Office Scripts أو Add-ins أطبيعيّ في المتصفّح وM365 ومسار العمل المشترك، وأن التغيّر اتّضاح حدود لا جمع الكلّ في أحد الطرفين.تشغيل عميق لـ Excel سطح المكتبمتصفّح / M365 / مسار عمل مشتركأين يُستخدمنطاق VBA ما زال أوسعOffice Scripts أو Add-ins أطبيعيّاتّضاح الحدود

الشكل 14: ليس «الكلّ إلى Office Scripts» ولا «VBA مركزاً إلى الأبد»، بل الحدود تتحدّد.

6. حالات ينبغي استبدالها / حالات لا يلزم استبدالها

نضع أوّلاً جدول حكم تقريبي لكن نافع.

الوضع مؤشر الحكم السبب
المستخدم يفتح Excel / Access على جهازه لأتمتة صغيرة استخدم كما هو، أو رتّب بخفّة يطابق نطاق VBA إلى حدّ بعيد
تريد إبقاء Excel للـ UI والتقرير فقط، لكن المنطق صار ثقيلاً اجعلها هجينة أبقِ VBA رقيقاً، وأخرج المعالجة الثقيلة إلى .NET أو عمليّة أخرى لتسهل الصيانة
تريد الاستخدام أيضاً في المتصفّح وMac وiPad لا تجعل VBA مركزاً VBA يفترض سطح المكتب، وOffice Add-ins متعدّد المنصّات5
تريد تدوير مصنّف على OneDrive / SharePoint بمسار عمل M365 انظر في Office Scripts + Power Automate Office Scripts موجَّه إلى أتمتة متعدّدة المنصّات / سحابيّة411
تريد تنفيذاً غير مراقب في دفعة ليليّة أو خادم أو خدمة أوقف أتمتة Excel Microsoft لا توصي بأتمتة Office من جانب الخادم ولا تدعمها6
صار المركز مسار عمل معقّداً وإدارة صلاحيات وتدقيقاً وربطاً بقاعدة بيانات انظر في تحويله إلى تطبيق / نظام منطق داخل ملفّ Office يبلغ حدّه بسهولة

التهجين في السطر الثاني من الجدول يُستخدم في هذه المقالة بمعنى «إبقاء Excel / Access مدخل UI وتقرير، وإخراج منطق العمل والإدخال/الإخراج وحدهما إلى وحدة تشغيل خارجيّة». الفرق عن الاستبدال الشامل هو عدم تغيير الشاشة والتشغيل الظاهرَين للمستخدم. الشكل المحدّد في 7.1.

المهم في هذا الجدول أن محور حكم الاستبدال ليس «لأن VBA قديم». ما ينبغي النظر إليه حقّاً هو بيئة التشغيل، والتشغيل اليومي، والتوزيع، والاعتماد، والتدقيق، وقابلية التوسيع.

محور حكم الاستبدالمخطّط يبيّن أن محور حكم الاستبدال ليس «لأن VBA قديم» بل عناصر بيئة التشغيل والتشغيل اليومي والتوزيع والاعتماد والتدقيق وقابلية التوسيع، وأن التهجين يخرج المنطق والإدخال/الإخراج دون تغيير الشاشة والتشغيل الظاهرَين للمستخدم.لأن VBA قديملا يُجعَل محور حكمالمحاور التي ينبغي رؤيتها حقّاًبيئة التشغيل والتشغيل اليومي والتوزيعالاعتماد والتدقيق وقابلية التوسيعاختيار الإبقاء / التهجين / الإخراج

الشكل 15: محور الحكم ليس القِدَم بل بيئة التشغيل والتشغيل اليومي والتوزيع والاعتماد والتدقيق وقابلية التوسيع.

7. وجهات الاستبدال الواقعيّة

قبل الدخول في التفاصيل، نرتّب المرشّحين في صفحة واحدة. بعد أن يقرّر جدول حكم الفصل 6 «إلى أيّ جهة نميل»، استخدم هذا الجدول لتأكيد «ماذا تتطلّب تلك الجهة»، بهذا الترتيب.

المرشّح أين يعمل اللغة الافتراض والترخيص الغرض المناسب التفاصيل
إبقاء VBA داخل Office لسطح المكتب VBA Office لسطح المكتب أتمتة يكون فيها Excel / Access هو الـ UI نفسه الفصلان 2 و3
إخراج إلى DLL من .NET أو عمليّة أخرى جهاز المستخدم. استدعاء من Excel أو تشغيل كعمليّة أخرى C# وما شابه وقت تشغيل .NET. إن نُشر كـ COM يلزم أيضاً تصميم التسجيل منطق عمل ثقيل، HTTP، تشفير، CSV / JSON 7.1
توليد مباشر بـ Open XML وما شابه أساس تشغيل خادم أو دفعة C# / Python وما شابه تثبيت Office غير لازم توليد تقارير بالجملة دون مراقبة 7.2
Office Scripts + Power Automate الجانب السحابي لـ Microsoft 365 TypeScript ترخيص M365 للأعمال / التعليم وOneDrive for Business مسار عمل يدير مصنّفات على OneDrive / SharePoint 7.3
Office Add-ins Windows / Mac / iPad / المتصفّح HTML / CSS / JavaScript موضع استضافة ويب وآلية توزيع توسيع UI متعدّد المنصّات، توزيع مركزي 7.4
تحويل إلى تطبيق Windows / ويب تطبيقك أنت C# وما شابه نظام تطوير وتشغيل مجال صار مركزه الصلاحيّات والتدقيق وقاعدة البيانات 7.5

الأسهل تفويته عمود «الافتراض والترخيص». Office Scripts خصوصاً شروطه واضحة، فنرتّبه منفرداً في 7.3.

7.1 أبقِ Excel وأخرج المحتوى وحده إلى .NET أو عمليّة أخرى

الأكثر واقعيّة والأصعب فشلاً هو هذا.

  • مدخل الشاشة والتقرير يبقى Excel / Access
  • الأزرار ونماذج الإدخال تبقى مؤقّتاً كما هي
  • لكن منطق العمل وHTTP والتشفير وCSV / JSON والحساب الثقيل ومعالجة الملفّات تُخرَج
  • يُقرَّب VBA إلى «جسر» و«تشغيل UI» فقط

مزيّة هذا التكوين أن مظهر المستخدم وتشغيله يصعب كسرهما. يمكن التقدّم أوّلاً باتجاه ترقيق المسؤوليّة بدل الاستبدال الشامل.

تكوين هجين يُبقي Excel ويخرج المحتوى وحدهمخطّط يبيّن أن إبقاء مدخل الشاشة والتقرير Excel أو Access، وإخراج منطق العمل وHTTP والتشفير والحساب الثقيل ومعالجة الملفّات إلى .NET أو عمليّة أخرى، وتقريب VBA إلى جسر وتشغيل UI فقط، يرقّق المسؤوليّة دون كسر مظهر المستخدم وتشغيله.مدخل الشاشة والتقرير يبقى Excel / Accessيُقرَّب VBA إلى جسر وتشغيل UI فقطالمنطق الثقيل والإدخال/الإخراج إلى .NET أو عمليّة أخرىلا يُكسَر مظهر المستخدم وتشغيله

الشكل 16: الأصعب فشلاً هو إبقاء المدخل وإخراج المحتوى وحده.

مقالة ذات صلة:

«قبل إعادة الكتابة الكاملة، أخرج المواضع الثقيلة أوّلاً» موجَّه جدّاً إلى الممارسة.

7.2 للتنفيذ غير المراقب وتوليد التقارير قرِّب إلى توليد الملفّ مباشرة لا أتمتة تطبيق Office

إن أردت توليد تقارير Excel بالجملة في دفعة ليليّة أو خدمة، فما ينبغي الشكّ فيه أوّلاً ليس «هل VBA قديم» بل تشغيل تطبيق Excel نفسه.

Microsoft لا توصي بـ Office Automation من جانب الخادم. بدلاً من ذلك توصي بطريقة التعامل مع ملفّ Office مباشرة بتنسيق Open XML وما شابه.6

أي إن كان المتطلّب:

  • صنع .xlsx
  • إخراج تقرير نمطي بالجملة
  • التحويل إلى PDF
  • التدوير في دفعة ليليّة

فالمحور الذي ينبغي اختياره ليس هل تشغّل Excel بل هل تجمّع ملفّ Excel.

توليد التقارير غير المراقب إلى توليد الملفّ مباشرةمخطّط يبيّن أن ما ينبغي الشكّ فيه أوّلاً عند توليد التقارير بالجملة في دفعة ليليّة أو خدمة هو تشغيل تطبيق Excel نفسه، وأن Office Automation من جانب الخادم غير موصى به، وأن تجميع ملفّ Office مباشرة بتنسيق Open XML وما شابه هو الاتجاه الموصى به.غير موصى بهالاتجاه الموصى بهتوليد تقارير بالجملة دون مراقبةبأيّ محور تفكّرتشغيل تطبيق Excelتجميع الملفّ مباشرة بـ Open XML وما شابه

الشكل 17: في متطلّب التنفيذ غير المراقب اختر «تجميع الملفّ» لا «تشغيل Excel».

مقالة ذات صلة:

7.3 لمسار العمل على Microsoft 365: Office Scripts + Power Automate

إن كان العمل قد مال بالفعل إلى OneDrive / SharePoint / Teams / Outlook / Forms، يصير Office Scripts مرشّحاً قويّاً.

توضّح Microsoft أن Office Scripts موجَّه إلى حلول سحابيّة آمنة ومتعدّدة المنصّات. كذلك بالجمع مع Power Automate يمكن أتمتة معالجة Excel بمحفّز بريد أو نموذج أو جدولة.411

لكن قبل ذلك يلزم تأكيد شروط الاستخدام. هذه هي افتراض التكلفة والبيئة نفسه، وستؤثّر حتماً لاحقاً.1213

الافتراض المحتوى
الترخيص يلزم أحد Office 365 Business / Business Premium / ProPlus / A3 / A5 / Enterprise E1 / E3 / E5 / F3. اشتراك الأفراد / العائلة يُعامَل كـ preview
العميل Excel on the web، أو Excel for Windows من Version 2210 فما فوق، أو Excel for Mac
موضع الحفظ يلزم OneDrive for Business. السكربت يُوضَع كملفّ .osts تحت /Documents/Office Scripts/ في OneDrive، ويمكن نقله إلى SharePoint
إعداد المشاركة يلزم تفعيل رابط مشاركة موجَّه إلى «مستخدمي المؤسسة»
الشبكة اتّصال بالإنترنت، وتفعيل تجربة الاتّصال
عند الاستخدام من Power Automate يلزم ترخيص أعمال لـ Microsoft 365. Enterprise E1 وF3 يمكن استخدامهما عبر Power Automate، لكن لا يمكن استخدام ربط Power Automate مباشرة من داخل Excel
خارج النطاق لا يُدعم في سحابة حكوميّة من GCC High فما فوق

أي أن Office Scripts ليس «بديلاً مجّانيّاً مرافقاً لـ VBA». مقارنة بتشغيل توزيع .xlsm محلّي، يزداد افتراض OneDrive / SharePoint وترخيص M365. تقرير «الترحيل إلى Office Scripts» مع تفويت ذلك يعيد الحديث في منتصف الترحيل إلى تدبير الترخيص.

الافتراضات التي تُؤكَّد أوّلاً عند الترحيل إلى Office Scriptsمخطّط يبيّن أن Office Scripts ليس بديلاً مجّانيّاً مرافقاً لـ VBA، وأن افتراض OneDrive أو SharePoint وترخيص M365 يزداد مقارنة بتشغيل توزيع .xlsm محلّي، فتقرير الترحيل مع تفويت ذلك يعيد الحديث في المنتصف إلى تدبير الترخيص.أكّد أوّلاًإن فوّتتشغيل توزيع .xlsm محلّيالنظر في الترحيل إلى Office Scriptsيزداد افتراض OneDrive / SharePoint وترخيص M365ادمج الافتراض في خطّة الترحيليعود الحديث في المنتصف إلى تدبير الترخيص

الشكل 18: Office Scripts ليس «بديلاً مجّانيّاً لـ VBA»؛ تأكيد الشروط أوّلاً.

بعد ذلك الجانب الوظيفي أيضاً ليس شاملاً.

  • Office Scripts لا يدعم أحداث مستوى Excel
  • التشغيل أساساً بدء يدوي أو استدعاء من Power Automate4
  • ربط Power Automate يحتاج ترخيص أعمال لـ Microsoft 36511
  • لإجراء Run script قيود مثل 1,600 مرّة لكلّ مستخدم في اليوم و120 ثانية للمعالجة المتزامنة12

أي أن الأدق رؤية Office Scripts كـ مكوّن أتمتة على M365 لا كـ «بديل لـ VBA».

كيف يُشغَّل Office Scriptsمخطّط يبيّن أن Office Scripts لا يدعم أحداث مستوى Excel، وأن التشغيل أساساً بدء يدوي أو استدعاء من Power Automate، مع قيود على عدد الاستدعاءات وزمن المعالجة المتزامنة، فالأدق رؤيته كمكوّن أتمتة على M365 لا كبديل لـ VBA.Office Scriptsالبدء يدوياًالاستدعاء من Power Automateلا يدعم أحداث مستوى Excelيُرى كمكوّن أتمتة على M365

الشكل 19: نموذج التشغيل يختلف عن VBA الموجَّه بالأحداث؛ يُستخدم كمكوّن أتمتة على M365.

7.4 إن أردت توسيعاً متعدّد المنصّات فـ Office Add-ins

إن أردت توسيع Word وExcel وOutlook وما شابه عبر Windows / Mac / iPad / المتصفّح، فـ Office Add-ins هو المرشّح الأوّل.

الوثائق الرسميّة من Microsoft أيضاً توضّح أن Office Add-ins يمكن بناؤه بـ HTML / CSS / JavaScript، ويعمل عبر منصّات متعدّدة ويناسب التوزيع المركزي.5

هذا يناسب متطلّبات من هذا النوع مثلاً.

  • ربط بوّابة داخليّة أو نظام أساسي بـ Office
  • إخراج الـ UI أو الأمر نفسه في Outlook / Excel / Word
  • توزيع من المسؤول لا توزيع ماكرو لكلّ جهاز مستخدم
  • مغادرة نموذج توزيع .xlsm المحلّي

الملعب يختلف عن VBA، فيتغيّر الإحساس كثيراً عن كتابة شيفرة داخل Excel. بالمقابل يسهل ترتيب التشغيل والتوزيع.

الشكل الذي يناسبه Office Add-insمخطّط يبيّن أن Office Add-ins يُبنى بـ HTML وCSS وJavaScript، ويعمل عبر Windows وMac وiPad والمتصفّح ويناسب التوزيع المركزي، فيلائم متطلّب مغادرة توزيع ماكرو لكلّ جهاز أو نموذج توزيع .xlsm محلّي.البناء بـ HTML / CSS / JavaScriptيعمل على Windows / Mac / iPad / المتصفّحتوزيع مركزي من المسؤولمغادرة نموذج توزيع .xlsm المحلّي

الشكل 20: إن كان متعدّد المنصّات والتوزيع المركزي متطلّبين، فهذا ملعب Add-ins.

7.5 إن لم يعد Excel / Access هو الـ UI الأصلي، فأخرج إلى تطبيق Windows أو ويب

إن وصل الحال إلى هذا، فأطبيعيّ إعادة البناء كتطبيق من إطالة عمر VBA.

  • ازداد تنقّل الشاشات والتحكّم في الصلاحيّات أكثر من اللازم
  • المركز قاعدة بيانات وسجلّ تدقيق ومسار موافقة وإدارة مستخدمين
  • يوجد ربط بأجهزة خارجيّة أو معالجة طويلة
  • صارت خلية Excel أو النموذج بديلاً عن مواصفات العمل
  • اختفاء إدارة الحالة عند إغلاق المصنّف نفسه صار مؤلماً

في هذه الحالة، إن كانت الأداة تفترض Windows فأطبيعيّ تطبيق سطح مكتب بـ C# / .NET، وإن اتّسع المستخدمون والأجهزة فأطبيعيّ تطبيق ويب لتصير البنية أوضح.

8. كيف يُتقدَّم في الترحيل المرحلي

أخطر ما في استبدال VBA هو محاولة جمع الكلّ في تقنية جديدة واحدة من البداية. في الممارسة أأمن عموماً أن تُخطى المراحل بالترتيب التالي.

8.1 اصنع أوّلاً سجلّ أصول

ما ينبغي جرده أوّلاً هو الاعتماد أكثر من حجم الشيفرة نفسه.

  • أيّ .xlsm / .xlam / .accdb / .mdb موجود
  • أيّها مدخل التشغيل الفعلي
  • ماذا في إعدادات الإشارة
  • ما Declare وDLL الخارجي وCOM / ActiveX / OCX
  • كيف هو افتراض 32 بت / 64 بت
  • أيّ ماكرو يستخدمه من وبأيّ إجراء
  • ما المخرجات (Excel، CSV، PDF، طباعة، إرسال بريد، إلخ)

الاستبدال مع بقاء هذا غامضاً يولّد لاحقاً حادثاً من نوع «ماكرو ظننا أن لا أحد يلمسه كان حيّاً في نهاية الشهر فقط».

ما يجرده سجلّ الأصولمخطّط يبيّن أن أوّل الترحيل المرحلي جرد الاعتماد لا حجم الشيفرة، أي أيّ ملفّ مدخل التشغيل الفعلي، وكيف إعدادات الإشارة وDLL الخارجي وافتراض bitness، ومن يستخدم أيّ ماكرو وبأيّ إجراء وماذا يُخرِج، وأن الغموض يولّد حادث ماكرو حيّ في نهاية الشهر فقط.جرد الملفّاتجرد الاعتماد (إعدادات الإشارة وDLL وbitness)جرد الاستخدام (من وبأيّ إجراء والمخرج)الغموض يولّد حادث ماكرو حيّ في نهاية الشهر فقط

الشكل 21: ما يراه السجلّ ليس حجم الشيفرة بل الاعتماد وطريقة الاستخدام.

8.2 اقسم الشيفرة حسب المسؤوليّة

التالي ليس القسمة حسب الملفّ بل حسب المسؤوليّة.

  • تشغيل UI لـ Excel / Access
  • إدخال وإخراج الورقة
  • تخطيط التقرير
  • قواعد العمل
  • API خارجي / ملفّ / إدخال وإخراج قاعدة بيانات
  • معالجة دفعة
  • طباعة / توزيع

هذا التقسيم يسهّل رؤية ما يُبقى وما يُرقَّق وما يُخرَج.

8.3 قرّر وجهة الاستبدال حسب المسؤوليّة

تقسيم يسهل التوصية به كالتالي.

  • الـ UI وتشغيل الورقة: أبقِ في VBA مؤقّتاً
  • منطق العمل: أخرج إلى DLL من .NET أو عمليّة أخرى أو خدمة
  • توليد التقارير غير المراقب: قرِّب إلى Open XML أو التوليد المباشر
  • مسار عمل M365: Office Scripts + Power Automate
  • UI متعدّد المنصّات: Office Add-ins
  • مجال صار نظام عمل: افصل إلى تطبيق Windows / ويب

المهم ألّا تُوحَّد وجهة الترحيل في واحدة. محتوى أصل VBA يختلط فيه عادة عدّة مسؤوليّات.

تقرير وجهة الترحيل حسب المسؤوليّةمخطّط يبيّن أن قسمة الشيفرة حسب المسؤوليّة لا حسب الملفّ تسهّل رؤية ما يُبقى وما يُرقَّق وما يُخرَج، فيُبقى الـ UI وتشغيل الورقة في VBA مؤقّتاً، ويُخرَج منطق العمل إلى .NET، وتوليد التقارير غير المراقب إلى Open XML، ومسار عمل M365 إلى Office Scripts.قسمة الشيفرة حسب المسؤوليّةيظهر ما يُبقى / يُرقَّق / يُخرَجالـ UI وتشغيل الورقة يُبقيان في VBA مؤقّتاًمنطق العمل إلى .NET أو عمليّة أخرىتوليد التقارير غير المراقب إلى Open XMLمسار عمل M365 إلى Office Scripts

الشكل 22: القسمة حسب المسؤوليّة لا حسب الملفّ تجعل وجهات الترحيل متعدّدة طبيعيّاً.

8.4 ثبّت الواجهة أوّلاً

قبل بدء الترحيل أأمن تقرير التالي على الأقل.

  • ما الإدخال
  • ما الإخراج
  • كيف يُرجَع عند الخطأ
  • أيّ ورقة وأيّ نطاق مسمّى وأيّ مسار ملفّ يُجعَل عقداً
  • في أيّ لحظة تُعدّ النتيجة ثابتة

التقدّم دون تقرير ذلك يجعل عنوان الخلية نفسه API فيسهل الكسر.

8.5 قارن بالتشغيل المتوازي

للتقارير والتجميع خصوصاً، أأمن ألّا تُبدَّل فجأة.

  • أخرج نسخة VBA القديمة والتنفيذ الجديد على التوازي
  • قارن .xlsx / CSV / PDF المُخرَج
  • أكّد فرق التاريخ والتقريب والتنسيق ونطاق الطباعة
  • جرّب أيضاً مسار الاستثناء ومسار البيانات الفارغة

حوادث استبدال VBA تحدث عادة لا في «هل يعمل» بل في شكل انحراف الأرقام أو التنسيق بهدوء.

قارن بالتشغيل المتوازي ثم بدّلمخطّط يبيّن أن التقارير والتجميع لا تُبدَّل فجأة، بل تُخرَج نسخة VBA القديمة والتنفيذ الجديد على التوازي، ويُؤكَّد فرق التاريخ والتقريب والتنسيق ونطاق الطباعة، وتُجرَّب مسارات الاستثناء والبيانات الفارغة ثم يُبدَّل، لمنع حادث انحراف الأرقام أو التنسيق بهدوء.إخراج النسخة القديمة والتنفيذ الجديد على التوازيمقارنة المخرج (تاريخ وتقريب وتنسيق ونطاق طباعة)تجربة مسار الاستثناء ومسار البيانات الفارغة أيضاًالتبديل بعد تأكيد غياب الفرقالحادث يحدث بشكل انحراف الأرقام أو التنسيق بهدوء

الشكل 23: لا تبدّل فجأة؛ انقل بعد مقارنة مخرجات القديم والجديد على التوازي.

9. إخفاقات شائعة

9.1 البدء بـ «VBA قديم، انقل الكلّ إلى Office Scripts»

Office Scripts قوي، لكن Microsoft نفسها توضّح أن نطاق وظائف Excel سطح المكتب أوسع في VBA. علاوة على ذلك Office Scripts لا يدعم أحداث مستوى Excel.4

لذلك فكرة النقل العرضي لماكرو يعتمد بعمق على Excel سطح المكتب خطرة.

9.2 مواصلة تشغيل Excel نفسه رغم التنفيذ غير المراقب

هذا كثير جدّاً. ما دام يعمل يبدو مريحاً، لكن Microsoft لا توصي بأتمتة Office من جانب الخادم.6

للدفعة الليليّة أو الخدمة، أأمن التقريب إلى تجميع ملفّ Excel لا تشغيل Excel.

9.3 تغيير الشاشة والتقرير وقواعد العمل كلّها في الوقت نفسه

ما يُخيف حقّاً في استبدال VBA ليس تحويل الشيفرة نفسه بل تفويت مواصفات العمل. في ورقة Excel أو نموذج Access قواعد تشغيل غير مكتوبة في الشيفرة مدفونة بكثرة.

تغيير الكلّ دفعة واحدة يسهّل حادثاً من نوع «المظهر قريب لكن نهاية الشهر وحدها تختلف».

ما يحدث عند تغيير الكلّ في الوقت نفسهمخطّط يبيّن أن ما يُخيف حقّاً في استبدال VBA ليس تحويل الشيفرة بل تفويت مواصفات العمل، وأن ورقة Excel أو نموذج Access يدفن قواعد تشغيل غير مكتوبة في الشيفرة، فتغيير الشاشة والتقرير وقواعد العمل كلّها في الوقت نفسه يسهّل حادثاً مظهره قريب ونهاية الشهر فيه تختلف.تغيير الشاشة والتقرير وقواعد العمل كلّها في الوقت نفسهتفويت قواعد تشغيل غير مكتوبة في الشيفرةحادث مظهره قريب ونهاية الشهر فيه تختلفالمخيف تفويت مواصفات العمل لا تحويل الشيفرة

الشكل 24: تغيير الكلّ دفعة واحدة يسهّل تفويت مواصفات العمل خارج الشيفرة.

9.4 تأجيل 32 بت / 64 بت والإشارات الخارجيّة

في قضايا الترحيل، كثيراً ما ينفجر قبل شيفرة VBA نفسها:

  • Declare
  • DLL خارجي
  • COM / ActiveX / OCX
  • bitness في Office
  • إعدادات الإشارة

تأجيل هذا يجعل نهاية التنفيذ صعبة دفعة واحدة.7

9.5 خلط حديث VBScript بحديث VBA

الإيقاف التدريجي لـ VBScript، من جهة VBA، حديث مراجعة بعض الاعتماد. ليس المعنى نفسه لإنهاء VBA ككلّ.10

خلط هذا يسهّل أن تسير وحدها معلومة داخليّة فضفاضة من نوع «يبدو أن VBA سينتهي».

10. الخلاصة

إن قيل VBA بجملة، فهو لغة توسيع ملتصقة بتطبيقات Office لسطح المكتب. لأتمتة عمل يد المستخدم بجانب Excel أو Access ما زال عمليّاً جدّاً.1

لكن المهم في الممارسة القادمة هو ألّا يُعامَل VBA كتقنية مركز شاملة.

  • إن أردت متصفّحاً / تعدّد منصّات فانظر إلى Office Scripts أو Office Add-ins45
  • للتنفيذ غير المراقب / معالجة الخادم تجنّب Office Automation6
  • المنطق الثقيل والربط الخارجي أخرجه إلى .NET أو عمليّة أخرى
  • إن صار Excel / Access متعباً كـ UI فأخرج إلى تطبيق Windows أو ويب

الإجابة ليست «استبدل الكلّ» ولا «لا تغيّر شيئاً» بل «اقسم حسب المسؤوليّة ورقِّق على مراحل».

إجابة الاستبدالمخطّط يبيّن أن إجابة VBA ليست استبدال الكلّ ولا عدم تغيير شيء، بل القسمة حسب المسؤوليّة والترقيق على مراحل، وأن أأمن الاستبدال أن يُتقدَّم فيه كترتيب لا كترجمة.طرفطرفإجابة عمليّةماذا نفعل بأصل VBAاستبدل الكلّلا تغيّر شيئاًاقسم حسب المسؤوليّة ورقِّق على مراحلتقدّم كترتيب لا كترجمة

الشكل 25: الإجابة ليست الطرفين، بل القسمة حسب المسؤوليّة والترقيق على مراحل.

أصل VBA يبدو قديماً إن نُظر إليه على عجل. لكن في الممارسة يمتلئ بـ مواصفات العمل، وإجراءات التشغيل، وتصميم التقارير، واعتياد الميدان.

لذلك أأمن الاستبدال أن يُتقدَّم فيه كـ ترتيب لا كـ ترجمة.

11. مقالات ذات صلة

روابط مرجعية

  1. Microsoft Learn, Office VBA Reference. “Office Visual Basic for Applications (VBA) is an event-driven programming language that enables you to extend Office applications.” ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7

  2. Microsoft Support, Work with VBA macros in Excel for the web. لا يمكن إنشاء ماكرو VBA أو تشغيله أو تحريره في Excel for the web. ↩ ↩2 ↩3 ↩4

  3. Microsoft Learn, Macros from the internet are blocked by default in Office. ماكرو VBA في الملفّات ذات الأصل من الإنترنت محظور افتراضيّاً. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7

  4. Microsoft Learn, Differences between Office Scripts and VBA macros. VBA يتمحور حول سطح المكتب، وOffice Scripts موجَّه إلى حلول سحابيّة آمنة ومتعدّدة المنصّات، ونطاق وظائف Excel سطح المكتب أوسع حاليّاً في VBA. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10

  5. Microsoft Learn, Office Add-ins platform overview. Office Add-ins قائم على HTML / CSS / JavaScript، ويعمل عبر Windows وMac وiPad والمتصفّح، ويناسب التوزيع المركزي. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7

  6. Microsoft Support, Considerations for server-side Automation of Office. Microsoft لا توصي بأتمتة Office من جانب الخادم ولا تدعمها، وترشد إلى بدائل مثل Open XML. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7

  7. Microsoft Learn, 64-bit Visual Basic for Applications overview. الافتراضي في Office 2019 / Microsoft 365 هو 64 بت، وقد تلزم معالجة PtrSafe وLongPtr وما شابه. ↩ ↩2 ↩3 ↩4

  8. Microsoft Learn, Office for the web service description. لا يمكن إنشاء ماكرو VBA أو تشغيله في Excel for the web، لكن تحرير مصنّف يحتفظ بـ VBA ممكن. ↩

  9. Microsoft Learn, Visual Basic for Applications (VBA) language reference. يُرشد إلى الرجوع إلى Office Add-ins عند صنع توسيع متعدّد المنصّات. ↩ ↩2

  10. Microsoft 365 Developer Blog, Prepare your VBA projects for VBScript deprecation in Windows. تأثير الإيقاف التدريجي لـ VBScript على تشغيل .vbs أو مشاريع VBA المعتمدة على VBScript.RegExp، ومعالجة RegExp من Office Version 2508 فما فوق. ↩ ↩2 ↩3 ↩4 ↩5

  11. Microsoft Learn, Run Office Scripts with Power Automate. الأتمتة بجمع Power Automate وOffice Scripts، والترخيص اللازم. ↩ ↩2 ↩3

  12. Microsoft Learn, Platform limits, requirements, and error messages for Office Scripts. العميل المستهدف، وOneDrive for Business، وترخيص Microsoft 365 اللازم، وقيود عدد الاستدعاءات والمهلة عند الربط مع Power Automate. ↩ ↩2

  13. Microsoft Learn, Office Scripts file storage and ownership. يُحفَظ السكربت كـ .osts تحت /Documents/Office Scripts/ في OneDrive، ويمكن نقله إلى SharePoint. ↩

أحدث المقالات التي تشترك في نفس الوسوم. عمّق فهمك بمواضيع مرتبطة.

ترتبط هذه المقالة بشكل طبيعي بصفحات الخدمات التالية.

الأسئلة الشائعة

أسئلة شائعة حول موضوع هذه المقالة.

هل سيتعذّر استخدام VBA قريباً؟
حتى مارس 2026 على الأقل، لا يظهر في المعلومات الرسميّة من Microsoft إعلان واضح بأن «VBA نفسه سيُنهى قريباً». ما يحدث الآن ليس إلغاءً مفاجئاً شاملاً، بل اتّضاح أماكن الاستخدام وشروطه. تحديداً، لا يمكن إنشاء VBA أو تشغيله أو تحريره في Excel for the web، وتُحظَر ماكروهات الملفّات ذات الأصل من الإنترنت افتراضيّاً. مستقبل VBA أقرب إلى اتّضاح الحدود منه إلى الاختفاء.
هل يكفي ترحيل VBA كلّه إلى Office Scripts؟
لا نوصي بذلك. Microsoft نفسها توضح أن نطاق وظائف Excel المتاحة في عميل سطح المكتب أوسع حاليّاً في VBA، وأن Office Scripts لا يدعم أحداث مستوى Excel. الأدق رؤية Office Scripts لا كبديل لـ VBA بل كمكوّن أتمتة على M365 يُشغَّل مع Power Automate على مصنّفات OneDrive أو SharePoint. وجهة الترحيل تُختار حسب المسؤوليّة.
هل يجوز تشغيل ماكرو Excel دون مراقبة على خادم أو دفعة ليليّة؟
هذا خطر. Microsoft تنصّ صراحة على أنّها لا توصي بأتمتة تطبيقات Office من جانب الخادم ولا تدعمها. صُمِّم Office بافتراض سطح مكتب تفاعلي وملفّ تعريف مستخدم، وقد يحدث عدم استقرار أو deadlock في بيئة غير مراقبة. إن كان توليد التقارير بالجملة متطلّباً، فالموصى به تجميع ملفّ Excel مباشرة بتنسيق Open XML مثلاً، لا تشغيل تطبيق Excel.
كيف يُرحَّل أصل VBA القائم؟
الأأمن الترحيل المرحلي لا جمع الكلّ في تقنية جديدة واحدة من البداية. أوّلاً اصنع سجلّ أصول لملفّات .xlsm والإشارات وDLL الخارجي وافتراض 32 بت / 64 بت، ثم اقسم الشيفرة حسب المسؤوليّة: تشغيل الـ UI، منطق العمل، التقارير، الإدخال/الإخراج. بعد ذلك أبقِ الـ UI وتشغيل الورقة في VBA مؤقّتاً، وانقل منطق العمل إلى DLL من .NET أو عمليّة أخرى، وتوليد التقارير غير المراقب إلى Open XML، ومسار عمل M365 إلى Office Scripts. للتقارير والتجميع قارن مخرجات القديم والجديد على التوازي ثم بدّل.

الملف الشخصي للمؤلف

صفحة الملف الشخصي لمؤلف المقالة.

غو كومورا

مؤسّس شركة كومورا سوفت ذ.م.م.

يركّز على تطوير برامج ويندوز، والاستشارات التقنية، والتحقيق في الأخطاء، ويتميّز في المشاريع التي تبقى فيها الأصول القديمة ناشطة، وفي تشخيص الأعطال التي يصعب تحديد سببها.

العودة إلى المدونة