فيجوال بيسك للتطبيقات

لغة البرمجة Visual Basic for Applications ( VBA ) هي تطبيق للغة البرمجة Visual Basic 6.0 من مايكروسوفت ، وهي لغة تعتمد على الأحداث ومدمجة في معظم تطبيقات Microsoft Office المكتبية . على الرغم من أنها مبنية على Visual Basic ما قبل .NET، والتي لم تعد مايكروسوفت تدعمها أو تُحدّثها (باستثناء دعم "It Just Works" الذي يغطي كامل فترة دعم إصدارات Windows، بما في ذلك Windows 10 وWindows 11)، إلا أن تطبيق VBA في Office لا يزال يُحدّث لدعم ميزات Office الجديدة. [ 1 ] [ 2 ] تُستخدم VBA في تطوير البرامج الاحترافية والشخصية نظرًا لسهولة استخدامها، وقاعدة مستخدمي Office الواسعة، وتاريخها العريق في مجال الأعمال.

تُمكّن لغة Visual Basic for Applications من إنشاء دوال مُعرّفة من قِبل المستخدم (UDFs)، وأتمتة العمليات، والوصول إلى واجهة برمجة تطبيقات Windows (Windows API ) ووظائف أخرى منخفضة المستوى عبر مكتبات الارتباط الديناميكي (DLLs). وهي تُطوّر وتُوسّع قدرات لغات برمجة الماكرو السابقة المُخصصة للتطبيقات، مثل WordBASIC في برنامج Word . يُمكن استخدامها للتحكم في العديد من جوانب التطبيق المُضيف، بما في ذلك معالجة ميزات واجهة المستخدم، مثل القوائم وأشرطة الأدوات، والعمل مع نماذج المستخدم المُخصصة أو مربعات الحوار.

كما يوحي اسمه، يرتبط VBA ارتباطًا وثيقًا بـ Visual Basic ويستخدم مكتبة وقت تشغيل Visual Basic. مع ذلك، لا يمكن تشغيل كود VBA عادةً إلا داخل تطبيق مضيف، وليس كبرنامج مستقل . لكن VBA يستطيع التحكم في تطبيق من خلال OLE Automation . على سبيل المثال، يمكن لـ VBA إنشاء تقرير Microsoft Word تلقائيًا من بيانات Microsoft Excel التي يجمعها Excel تلقائيًا من أجهزة الاستشعار. يستطيع VBA استخدام مكتبات ActiveX/COM DLL، لكن لا يمكنه إنشاؤها، وتضيف الإصدارات الأحدث دعمًا لوحدات الفئات.

تُدمج لغة VBA في معظم تطبيقات Microsoft Office ، بما في ذلك Office لنظام التشغيل Mac OS X (باستثناء الإصدار 2008)، وتطبيقات Microsoft الأخرى، مثل Microsoft MapPoint و Microsoft Visio . كما تُستخدم VBA، جزئيًا على الأقل، في تطبيقات صادرة عن شركات أخرى غير Microsoft، مثل ArcGIS و AutoCAD و Collabora Online و CorelDraw و Kingsoft Office و LibreOffice و Softmaker Office و SolidWorks و WordPerfect و UNICOM System Architect (الذي يدعم VBA 7.1).

الأصول

عندما طُرحت أجهزة الكمبيوتر الشخصية لأول مرة في سبعينيات وثمانينيات القرن الماضي، كانت تتضمن عادةً نسخة من لغة BASIC ليتمكن المستخدمون من كتابة برامجهم الخاصة. وكانت منتجات مايكروسوفت الأولى عبارة عن مترجمات ومفسرات للغة BASIC، وقامت الشركة بتوزيع نسخ من BASIC مع نظام MS-DOS (من الإصدار 1.0 إلى 6.0)، وطورت منتجات لاحقة قدمت المزيد من الميزات والقدرات ( مثل QuickBASIC وBASIC Professional Development System).

في عام 1989، عرض بيل غيتس خطط مايكروسوفت لاستخدام لغة BASIC كلغة عالمية لتحسين أو تعديل أداء مجموعة من تطبيقات البرامج على الحواسيب الصغيرة. [ 5 ] كما كشف أن قاعدة مستخدمي BASIC النشطين بلغت أربعة ملايين مستخدم، وأن BASIC كانت تُستخدم على الحواسيب الشخصية بمعدل ثلاثة أضعاف أي لغة أخرى.

عندما صدرت لغة البرمجة فيجوال بيسك عام ١٩٩١، بدا من المنطقي استخدامها كلغة برمجة موحدة لتطبيقات ويندوز. قبل ذلك، كان لكل تطبيق من تطبيقات مايكروسوفت لغة ماكرو أو تقنية أتمتة خاصة به، وكانت الأدوات غير متوافقة إلى حد كبير. أول تطبيق من مايكروسوفت يستخدم فيجوال بيسك كان مايكروسوفت إكسل ٥.٠ عام ١٩٩٣، والذي استند إلى مايكروسوفت فيجوال بيسك ٣.٠. وقد حفز هذا على تطوير العديد من تطبيقات الأعمال المخصصة، وتم اتخاذ قرار بإتاحة فيجوال بيسك في مجموعة من المنتجات.

تعرّف مستخدمو نظام التشغيل ويندوز على التغييرات من خلال مجموعات المستخدمين والكتب والمجلات. ومن بين كتب الحاسوب المبكرة التي قدّمت مهارات برمجة VBA كتاب ريد جاكوبسن بعنوان "Microsoft Excel Visual Basic for Windows 95 Step by Step" (منشورات مايكروسوفت، 1995) وكتاب مايكل هالفورسون وكريس كيناتا بعنوان "Microsoft Word 97 Visual Basic Step by Step" (منشورات مايكروسوفت، 1997).

تصميم

يُترجم الكود المكتوب بلغة VBA [ 6 ] إلى لغة وسيطة خاصة بشركة مايكروسوفت تُسمى P-Code (كود زائف) ، والتي تخزنها التطبيقات المضيفة ( Access و Excel و Word و Outlook و PowerPoint ) كتدفق منفصل في ملفات COM Structured Storage (مثل .NET أو .NET ) بشكل مستقل عن تدفقات المستندات. ثم يُنفذ الكود الوسيط [ 6 ] بواسطة جهاز افتراضي (يستضيفه التطبيق المضيف). ينتهي التوافق مع Visual Basic الإصدار 6؛ إذ أن VBA غير متوافق مع Visual Basic .NET (VB.NET). VBA هي لغة خاصة بشركة مايكروسوفت، وباستثناء واجهة COM، فهي ليست معيارًا مفتوحًا ..doc.xls

الأتمتة

يتم التفاعل مع التطبيق المضيف باستخدام أتمتة OLE . عادةً، يوفر التطبيق المضيف مكتبة أنواع ووثائق واجهة برمجة التطبيقات (API) التي توضح كيفية تفاعل برامج VBA مع التطبيق. يمكن الاطلاع على هذه الوثائق من داخل بيئة تطوير VBA باستخدام مستعرض الكائنات الخاص بها.

لا يمكن استخدام برامج Visual Basic for Applications المصممة لاستخدام واجهة OLE Automation الخاصة بتطبيق ما لأتمتة تطبيق آخر، حتى لو كان هذا التطبيق يستضيف بيئة تشغيل Visual Basic، وذلك لاختلاف واجهات OLE Automation. على سبيل المثال، لا يمكن استخدام برنامج VBA مصمم لأتمتة Microsoft Word مع معالج نصوص آخر، حتى لو كان هذا المعالج يستضيف VBA.

في المقابل، يمكن أتمتة تطبيقات متعددة من جهاز واحد عن طريق إنشاء كائنات تطبيق ضمن كود VBA. يجب إنشاء مراجع للمكتبات المختلفة داخل عميل VBA قبل أن تصبح أي من الطرق أو الكائنات، وما إلى ذلك، متاحة للاستخدام في التطبيق. ويتحقق ذلك من خلال ما يُعرف بالربط المبكر أو المتأخر. تُنشئ كائنات التطبيق هذه رابط OLE للتطبيق عند إنشائها لأول مرة. يجب تنفيذ الأوامر الخاصة بالتطبيقات المختلفة بشكل صريح من خلال كائنات التطبيق هذه لكي تعمل بشكل صحيح.

على سبيل المثال، يمكن لرمز VBA المكتوب في Microsoft Access إنشاء مراجع لمكتبات Excel و Word و Outlook؛ وهذا يسمح بإنشاء تطبيق يقوم - على سبيل المثال - بتشغيل استعلام في Access، وتصدير النتائج إلى Excel وتحليلها، ثم تنسيق الإخراج كجداول في مستند Word أو إرسالها كبريد إلكتروني Outlook.

يمكن ربط برامج VBA بزر قائمة، أو ماكرو ، أو اختصار لوحة مفاتيح ، أو حدث OLE/COM، مثل فتح مستند في التطبيق. توفر اللغة واجهة مستخدم على شكل نماذج مستخدم، والتي يمكنها استضافة عناصر تحكم ActiveX لإضافة وظائف إضافية.

تشمل أتمتة الاتصال بين العمليات تبادل البيانات الديناميكي (DDE) والبيانات في الوقت الحقيقي (RTD)، مما يسمح باستدعاء خادم أتمتة نموذج كائن المكون (COM) للبيانات المالية أو العلمية الديناميكية أو في الوقت الحقيقي. [ 7 ]

مخاوف أمنية

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

في فبراير 2022، أعلنت مايكروسوفت عن خطتها لحظر وحدات ماكرو VBA في الملفات التي يتم تنزيلها من الإنترنت بشكل افتراضي في مجموعة متنوعة من تطبيقات Office نظرًا لاستخدامها الواسع النطاق لنشر البرامج الضارة. [ 8 ]

المخاطر الكلية

من مخاطر استخدام وحدات ماكرو VBA، كما هو الحال في تطبيقات مايكروسوفت أوفيس ، التعرض للفيروسات. [ 9 ] [ 10 ] وتنشأ هذه المخاطر من عوامل منها سهولة كتابة وحدات الماكرو، مما يقلل من المهارة المطلوبة لكتابة ماكرو خبيث، بالإضافة إلى أن ممارسات مشاركة المستندات الشائعة تسمح للفيروسات بالانتشار بسرعة. [ 11 ]

فيروسات النظام الكلية

يمكن إعادة تعريف ماكرو النظام - وهو الماكرو الذي يوفر عملية أساسية . يتيح ذلك مرونة كبيرة، ولكنه يشكل أيضًا خطرًا يمكن للمخترقين استغلاله للوصول إلى المستند وجهاز الكمبيوتر المضيف دون علم المستخدم أو موافقته. على سبيل المثال، يمكن للمخترق استبدال ماكرو الوظائف الأساسية المدمجة، مثل AutoExec وAutoNew وAutoClose وAutoOpen وAutoExit، بنسخ خبيثة. [ 11 ] يمكن تهيئة ماكرو خبيث ليتم تشغيله عند ضغط المستخدم على اختصار لوحة مفاتيح شائع، مثل اختصار لوحة المفاتيح Ctrl+Bالمخصص عادةً للخط العريض. [ 11 ]

تحويل المستند إلى ماكرو

نوع من فيروسات الماكرو يقوم بقص ولصق نص المستند داخل الماكرو. يمكن استدعاء الماكرو باستخدام خاصية الفتح التلقائي، بحيث يُعاد إنشاء النص عند فتح المستند (وهو فارغ). لن يلاحظ المستخدم أن المستند فارغ. كما يمكن للماكرو تحويل أجزاء معينة فقط من النص لتقليل وضوحه. قد يؤدي حذف الماكرو من المستند يدويًا أو باستخدام برنامج مكافحة الفيروسات إلى فقدان محتوى المستند. [ 10 ] : 609-610

وحدات الماكرو متعددة الأشكال

تُغيّر الفيروسات متعددة الأشكال شفرتها البرمجية بشكل جذري مع كل عملية نسخ لتجنب اكتشافها بواسطة برامج مكافحة الفيروسات. [ 12 ] في لغة WordBasic (الاسم الأول للغة Visual Basic )،يصعب إنشاء فيروسات متعددة الأشكال . في الواقع، يعتمد تعدد أشكال الماكرو على تشفير المستند. ومع ذلك، لا يملك المخترقون أي سيطرة على مفتاح التشفير . علاوة على ذلك، التشفير غير فعال: فالماكرو المشفر موجود في المستند، وبالتالي مفتاح التشفير موجود أيضًا، وعندما ينسخ ماكرو متعدد الأشكال نفسه، لا يتغير المفتاح (يؤثر النسخ على الماكرو فقط وليس على التشفير). إضافة إلى هذه الصعوبات، لا يمكن للماكرو تعديل نفسه، بينما يمكن لماكرو آخر ذلك. WordBasic لغة قوية، فهي تسمح بإجراء بعض العمليات على الماكرو:

  • أعد تسمية المتغيرات المستخدمة في الماكرو (الماكروات).
  • أضف تعليقات عشوائية بين عوامل تشغيل وحدات الماكرو الخاصة بها.
  • أدخل بين عوامل تشغيل وحدات الماكرو الخاصة به عوامل تشغيل WordBasic أخرى "لا تفعل شيئًا" والتي لا تؤثر على تنفيذ الفيروس.
  • استبدل بعض عوامل التشغيل الخاصة بها بعوامل أخرى مكافئة تؤدي نفس الوظيفة.
  • قم بتبديل أي عوامل تشغيل لا يؤثر ترتيبها على نتيجة تنفيذ الماكرو.
  • قم بإعادة تسمية وحدات الماكرو نفسها إلى أسماء جديدة مختارة عشوائيًا في كل مرة يقوم فيها الفيروس بنسخ نفسه إلى مستند جديد، مع إجراء التغييرات المناسبة في أجزاء جسم الفيروس التي تشير إلى وحدات الماكرو هذه.

لذا، لتنفيذ فيروسات الماكرو القادرة على تغيير محتوياتها، يتعين على المخترقين إنشاء ماكرو آخر يقوم بمهمة تعديل محتوى الفيروس. مع ذلك، فإن هذا النوع من فيروسات الماكرو ليس شائعًا. في الواقع، يلجأ المخترقون غالبًا إلى فيروسات الماكرو لسهولة وسرعة تنفيذها. يتطلب إنشاء ماكرو متعدد الأشكال معرفة واسعة بلغة WordBasic (إذ يحتاج إلى وظائف متقدمة) ووقتًا أطول من فيروس الماكرو "الكلاسيكي". حتى لو أنشأ المخترق ماكرو متعدد الأشكال، فإنه يحتاج إلى إجراء عملية تعدد الأشكال ، وبالتالي، يجب تحديث المستند، ويجب أن يكون التحديث مرئيًا للمستخدم. [ 10 ] : 610-612

وحدات الماكرو المتسلسلة

أثناء عملية النسخ، يمكن للماكرو إنشاء ماكروات لا تقوم بأي وظيفة. ولكن يمكن دمج هذه الفكرة مع الماكروات متعددة الأشكال، بحيث لا تكون الماكروات بالضرورة غير فعّالة؛ إذ يستدعي كل ماكرو الماكرو الذي يليه، ما يسمح بترتيبها في سلسلة. في هذه الحالة، إذا لم تتم إزالة جميعها أثناء عملية التنظيف، يتم تفعيل حمولة ضارة. يمكن لمثل هذا الهجوم أن يتسبب في تعطل معالج WinWord بخطأ داخلي. منذ إصدار WinWord 6.0 ، تم تحديد عدد الماكروات لكل قالب بـ 150، ما يحدّ من الهجوم أيضًا، ولكنه لا يزال مزعجًا للغاية. [ 10 ] : 623

فيروسات الماكرو "التزاوجية"

في بعض الحالات، قد تتفاعل فيروسات الماكرو فيما بينها. فإذا تم تشغيل فيروسين في الوقت نفسه، يُمكن لكليهما تعديل الشفرة المصدرية للآخر، مما ينتج عنه فيروس جديد لا تستطيع برامج مكافحة الفيروسات التعرف عليه. لكن النتيجة عشوائية تمامًا: فقد يكون فيروس الماكرو أكثر أو أقل عدوى، وذلك بحسب الجزء المُعدَّل منه. مع ذلك، عندما يكون هذا التفاعل غير مقصود، يكون احتمال أن يكون فيروس الماكرو الناتج أقل عدوى أكبر. ففي الواقع، لكي يتكاثر، يجب أن يعرف الأوامر الموجودة في الشفرة المصدرية، ولكن إذا تم تغييرها بشكل عشوائي، فلن يتمكن الماكرو من التكاثر. ومع ذلك، من الممكن إنشاء مثل هذه الماكروات عمدًا (وهذا يختلف عن فيروسات الماكرو متعددة الأشكال التي تستخدم ماكرو آخر لتغيير محتوياتها) لزيادة قدرة الفيروسين على العدوى. في مثال المقالة [ 10 ] : 612-613، أصاب فيروس الماكرو Colors [ 13 ] مستندًا، لكن فيروس ماكرو آخر أصاب نظام المستخدم قبله  : وهو فيروس الماكرو Concept . يستخدم كلا الفيروسين الأمر AutoOpen ، لذا، في البداية، تم اكتشاف فيروس الماكرو Colors، لكن الأمر AutoOpen فيه كان في الواقع أمر فيروس الماكرو Concept . علاوة على ذلك، عندما يُكرر Concept نفسه، يكون غير مُشفّر، بينما يكون الأمر في فيروس Colors مُشفّرًا (يُشفّر Colors أوامره). لذا، ينتج عن تكرار فيروس الماكرو Concept تهجين هذا الفيروس (الذي أصاب نظام المستخدم أولًا) مع Colors . لا يستطيع "الهجين" تكرار نفسه إلا إذا لم يتم تنفيذ AutoOpen ؛ في الواقع، يأتي هذا الأمر من Concept ، لكن محتوى الهجين هو Colors ، مما يُسبب بعض التعارضات. يُظهر هذا المثال إمكانات تزاوج الفيروسات الكبيرة: فإذا تم إنتاج زوج من الفيروسات الكبيرة المتزاوجة، سيصعب على الماسحات الضوئية المتخصصة بالفيروسات اكتشاف كلا الفيروسين (في هذه الفرضية، يوجد فيروسان فقط يتزاوجان) ، وقد يُعزز ذلك من قدرة الفيروسات على الانتشار. ولحسن الحظ، فإن هذا النوع من الفيروسات الكبيرة نادر (بل قد لا يوجد أصلاً، على عكس الفيروسات الكبيرة متعددة الأشكال)، إذ إن إنتاج اثنين (أو أكثر) من الفيروسات التي يمكنها التفاعل مع بعضها البعض دون أن تُضعف قدرتها على الانتشار (بل تُعززها) أمرٌ معقد.

محفزات الطفرات الفيروسية الكبيرة

يمكن تصميم وحدات الماكرو لتعديل وحدات الماكرو الموجودة، مما يسمح بإنشاء فيروس جديد عن طريق تعديل فيروس موجود. يصعب تحقيق ذلك مع الملفات التنفيذية، ولكنه سهل للغاية مع فيروسات الماكرو، نظرًا لتوافر شفرة المصدر الخاصة بها دائمًا. على غرار وحدات الماكرو متعددة الأشكال، يمكن لوحدة ماكرو واحدة إجراء تعديلات على جميع وحدات الماكرو الموجودة في المستند. وبناءً على ذلك، يمكن لبعض التعديلات البسيطة إنشاء مُعدِّل لفيروسات الماكرو، وبالتالي إنشاء آلاف الفيروسات المعروفة بسرعة. [ 10 ] : 613-614

الفيروسات الكبيرة الطفيلية

معظم فيروسات الماكرو مستقلة؛ فهي لا تعتمد على ماكرو أخرى (في الجزء المُعدي من الفيروس، وليس في عملية التكاثر كما هو الحال في بعض الفيروسات)، لكن بعض فيروسات الماكرو تعتمد عليها. تُسمى هذه الفيروسات بالماكرو الطفيلية. [ 10 ] : 614-615 عند تشغيلها، تفحص هذه الفيروسات الماكرو الأخرى (سواء كانت فيروسات أم لا)، وتُلحق محتوياتها بها. وبهذه الطريقة، تُصبح جميع الماكرو فيروسات. لكن هذا النوع من الماكرو لا ينتشر بسرعة الماكرو المستقلة. في الواقع، يعتمد على ماكرو أخرى، لذا، بدونها، لا يمكن للفيروس أن ينتشر. لذلك، غالبًا ما تكون الماكرو الطفيلية هجينة: فهي مستقلة وقادرة على إصابة ماكرو أخرى. يُشكل هذا النوع من فيروسات الماكرو مشكلة حقيقية لبرامج مكافحة الفيروسات المُخصصة ؛ إذ تُغير محتوى الفيروسات الأخرى، مما يجعل الكشف الدقيق عنها غير ممكن.

مضاد فيروسات دون المستوى الأمثل

توجد أنواع مختلفة من برامج مكافحة الفيروسات (أو الماسحات الضوئية)، منها برنامج مكافحة الفيروسات التحليلي الاستدلالي الذي يفسر أو يحاكي وحدات الماكرو. في الواقع، يتطلب فحص جميع فروع وحدات الماكرو تعقيدًا حسابيًا من نوع NP-complete [ 10 ] : 605 (باستخدام التراجع )، لذا في هذه الحالة، سيستغرق تحليل مستند واحد (يحتوي على وحدات ماكرو) وقتًا طويلًا جدًا. قد يؤدي تفسير أو محاكاة وحدة ماكرو إلى نتائج إيجابية خاطئة أو عدم اكتشاف فيروسات الماكرو.

نوع آخر من برامج مكافحة الفيروسات، وهو برنامج مكافحة الفيروسات الذي يعتمد على فحص سلامة الملفات، لا يعمل في بعض الحالات: فهو يفحص فقط المستندات ذات الامتدادات DOT [ 14 ] أو DOC (بل إن بعض شركات إنتاج برامج مكافحة الفيروسات تنصح مستخدميها بذلك)، ولكن مستندات Word قد تكون بامتدادات أخرى غير هذين الامتدادين، كما أن محتوى المستند يميل إلى التغيير باستمرار. [ 10 ] : 605 لذا، وكما هو الحال مع التحليل الاستدلالي ، قد يؤدي ذلك إلى نتائج إيجابية خاطئة ، نظرًا لأن هذا النوع من برامج مكافحة الفيروسات يفحص المستند بأكمله.

النوع الأخير من برامج مكافحة الفيروسات هو الماسح الضوئي المتخصص بالفيروسات . [ 10 ] : 608 يبحث هذا النوع عن بصمة الفيروسات، لذا فهو أضعف من الأنواع السابقة. في الواقع، الفيروسات التي يكتشفها الماسح الضوئي المتخصص بالفيروسات هي فقط تلك المعروفة لمطوري البرامج (لذا، يتطلب تحديثات أكثر من الأنواع الأخرى). علاوة على ذلك، يُعد هذا النوع ضعيفًا ضد الفيروسات المتغيرة (انظر القسم أعلاه ). إذا غيّر فيروس ماكرو محتواه (أي بصمته)، فلن يتمكن الماسح الضوئي المتخصص بالفيروسات من اكتشافه ، حتى لو كان هو نفسه الفيروس الذي يقوم بنفس الأفعال. بصمته لا تتطابق مع البصمة المُعلنة في برنامج مكافحة الفيروسات.

إضافةً إلى مسؤولية برنامج مكافحة الفيروسات، تقع على عاتق المستخدم مسؤوليةٌ أخرى: ففي حال اكتشاف فيروس ماكرو محتمل، يُمكن للمستخدم اختيار الإجراء المناسب: تجاهله، أو عزله ، أو حذفه، إلا أن الخيار الأخير هو الأخطر. إذ يُمكن لبرنامج مكافحة الفيروسات تفعيل بعض فيروسات الماكرو المدمرة التي تُتلف بعض البيانات عند حذفها. لذا، يتحمل كلٌ من برامج مكافحة الفيروسات والمستخدمين مسؤولية أمن وسلامة المستندات/الحاسوب. علاوةً على ذلك، حتى وإن لم يكن برنامج مكافحة الفيروسات مثاليًا في اكتشاف الفيروسات، فإنه يكتشف معظم فيروسات الماكرو، ويتحسن مستوى اكتشاف الفيروسات باستمرار، ولكن مع ظهور فيروسات ماكرو جديدة.

سجل الإصدارات

  • تم إطلاق لغة VBA لأول مرة مع برنامج MS Excel 5.0 في عام 1993. وحققت نجاحًا فوريًا بين المطورين لإنشاء حلول مؤسسية باستخدام Excel. وقد زاد من شعبيتها دمج VBA مع برامج Microsoft Project وAccess وWord، ليحل محل Access BASIC و WordBASIC على التوالي.
  • يُعدّ VBA 4.0 الإصدار الشهير التالي، وهو نسخة مُطوّرة بالكامل مقارنةً بالإصدار السابق. صدر عام 1996، وهو مكتوب بلغة C++، وقد أصبح لغة برمجة كائنية التوجه.
  • تم إطلاق VBA 5.0 في عام 1997 مع جميع منتجات MS Office 97. الاستثناء الوحيد لذلك كان Outlook 97 الذي استخدم VBScript .
  • تم إطلاق VBA 6.0 و VBA 6.1 في عام 1999، مع دعم خاص لإضافات COM في Office 2000. تم إصدار VBA 6.2 جنبًا إلى جنب مع Office 2000 SR-1.
  • تم إصدار VBA 6.3 بعد Office XP، وVBA 6.4 بعد Office 2003، وتم إصدار VBA 6.5 مع Office 2007.
  • يتضمن Office 2010 الإصدار 7.0 من VBA. لا توجد ميزات جديدة في VBA 7 للمطورين مقارنةً بالإصدار 6.5، باستثناء دعم 64 بت. مع ذلك، بعد إصدار VBA 6.5/Office 2007، أوقفت مايكروسوفت ترخيص VBA للتطبيقات الأخرى.
  • تتضمن إصدارات Office 2013 و Office 2016 و Office 2019 و Office 2021 و Office 2024 لغة VBA 7.1.

تطوير

اعتبارًا من 1 يوليو 2007، توقفت مايكروسوفت عن تقديم تراخيص توزيع VBA للعملاء الجدد. كانت مايكروسوفت تعتزم إضافة لغات .NET إلى الإصدار الحالي من VBA منذ إصدار إطار عمل .NET ، [ 15 ] الذي تضمن الإصداران 1.0 و1.1 منه تقنية وقت تشغيل برمجية تُسمى Script for the .NET Framework . [ 16 ] احتوت حزمة تطوير البرامج (SDK) الخاصة بـ Visual Studio .NET 2002 و2003 على بيئة تطوير متكاملة (IDE) منفصلة للبرمجة النصية تُسمى Visual Studio for Applications (VSA) تدعم VB.NET. [ 17 ] [ 18 ] [ 19 ] ومن أبرز ميزاتها توفر واجهات لهذه التقنية عبر Active Scripting ( VBScript و JScript )، مما يسمح حتى للتطبيقات غير المتوافقة مع .NET بأن تُبرمج باستخدام لغات .NET. ومع ذلك، تم إيقاف VSA في الإصدار 2.0 من .NET Framework، [ 19 ] مما لم يترك مسار ترقية واضحًا للتطبيقات التي ترغب في دعم Active Scripting (على الرغم من أنه يمكن إنشاء "البرامج النصية" بلغة C# و VBScript ولغات .NET الأخرى، والتي يمكن تجميعها وتنفيذها في وقت التشغيل عبر المكتبات المثبتة كجزء من وقت تشغيل .NET القياسي).

أوقفت مايكروسوفت دعم لغة VBA في مايكروسوفت أوفيس 2008 لنظام ماك . [ 20 ] [ 21 ] ثم أعيد دعم VBA في مايكروسوفت أوفيس 2011 لنظام ماك . وأكدت مايكروسوفت أنها لا تنوي إزالة VBA من نسخة ويندوز من أوفيس. [ 22 ] [ 23 ]

مع إصدار Office 2010 ، قدمت مايكروسوفت VBA7، الذي يحتوي على نوع بيانات مؤشر حقيقي: LongPtr. يتيح ذلك الإشارة إلى مساحة عناوين 64 بت. لا يدعم تثبيت Office 2010 ذو 64 بت عناصر التحكم الشائعة في MSComCtl (TabStrip، Toolbar، StatusBar، ProgressBar، TreeView، ListViews، ImageList، Slider، ImageComboBox) أو MSComCt2 (Animation، UpDown، MonthView، DateTimePicker، FlatScrollBar)، لذا فإن التعليمات البرمجية القديمة ذات 32 بت التي تم نقلها إلى تعليمات VBA البرمجية ذات 64 بت والتي تعتمد على عناصر التحكم الشائعة هذه لن تعمل. لم يؤثر هذا على إصدار Office 2010 ذي 32 بت. [ 24 ] أصدرت مايكروسوفت لاحقًا إصدارًا من MSComCtl ذو 64 بت مع تحديث Office 2016 بتاريخ 27 يوليو 2017. [ 25 ]

انظر أيضاً

مراجع

  1. "التوافق بين إصداري 32 بت و64 بت من Office 2010" . msdn.microsoft.com .
  2. o365devx. "ما الجديد في VBA في Office 2019" . docs.microsoft.com . تم الاطلاع عليه بتاريخ 2022-05-02 .{{cite web}}: صيانة CS1: الأسماء الرقمية: قائمة المؤلفين ( رابط )
  3. "دعم وحدات ماكرو VBA" . مؤسسة المستندات - ليبر أوفيس . تم الاطلاع عليه في 3 يناير 2023 .
  4. "مساعدة SolidWorks 2016 - VBA" . help.solidworks.com . تم الاطلاع عليه بتاريخ 25-07-2016 .
  5. غيتس، بيل؛ هالفورسون، مايكل؛ ريغمير، ديفيد (1989). تعلم لغة بيسك الآن . ريدموند، واشنطن: مطبعة مايكروسوفت. الصفحات 9-10 . 
  6. 1 2 "ACC: Visual/Access Basic هو مترجم ومفسر في آن واحد" . مايكروسوفت. 2012. مؤرشف من الأصل بتاريخ 21-10-2012.
  7. "كيفية إعداد واستخدام دالة RTD في Excel" . msdn.microsoft.com .
  8. "مايكروسوفت ستحظر وحدات ماكرو VBA في أوفيس افتراضيًا" . ذا فيرج . 7 فبراير 2022. تم الاطلاع عليه بتاريخ 26 سبتمبر 2022 .
  9. فيسلين بونتشيف. "مشاكل تحديد فيروسات الماكرو" . فيروسات الماكرو .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  10. 1 2 3 4 5 6 7 8 9 10 فيسلين بونتشيف (1996). "هجمات فيروسات الماكرو المحتملة وكيفية الوقاية منها". الفيروسات، الماكرو، سلامة الماكرو . 15 (7): 595. doi : 10.1016/S0167-4048(97)88131-X .
  11. 1 2 3 بول دوهرتي؛ بيتر سيمبسون (1999). "هجمات الماكرو: ما التالي بعد ميليسا؟". الفيروسات، سلامة الماكرو . 18 (5): 391-395 . doi : 10.1016/S0167-4048(99)80084-4 .
  12. وحدات الماكرو متعددة الأشكال
  13. "ألوان فيروسات الماكرو" . مؤرشف من الأصل بتاريخ 22-11-2012 . تم الاطلاع عليه بتاريخ 15-12-2012 .
  14. امتداد النقطة
  15. "Visual Studio for Applications" . مؤرشف من الأصل بتاريخ 17-12-2007.
  16. "تقديم Visual Studio للتطبيقات" . msdn.microsoft.com .
  17. "Script Happens .NET" . msdn.microsoft.com .
  18. "مايكروسوفت تكشف النقاب عن تقنية تطوير VSA" . مؤرشف من الأصل بتاريخ 17-12-2007.
  19. 1 2 "برمجة VSA في .NET" . مؤرشف من الأصل بتاريخ 2007-02-11.
  20. "مؤتمر WWDC: مايكروسوفت تُحدّث حالة التطبيقات العالمية لنظام ماك" . ماك وورلد . 7 أغسطس 2006. مؤرشف من الأصل في 19 يوليو 2008. تم الاطلاع عليه في 25 مايو 2007 .
  21. "ما هو Microsoft Office و Office 365 - الأسئلة الشائعة" .
  22. "إن التقارير التي تتحدث عن زوال VBA مبالغ فيها للغاية" .
  23. "توضيح بشأن دعم VBA" . مؤرشف من الأصل بتاريخ 2008-04-11.
  24. "التوافق بين إصداري 32 بت و64 بت من Office 2010" . msdn.microsoft.com .
  25. "ملاحظات الإصدار لإصدارات القناة الشهرية في عام 2017" . learn.microsoft.com . تم الاطلاع عليه بتاريخ 13 نوفمبر 2022 .