برمجة وحدات الماكرو في Excel: الدليل الكامل خطوة بخطوة

آخر تحديث: 29 أغسطس 2025
نبذة عن الكاتب: تكنوديجيتال
  • تقوم وحدات الماكرو بأتمتة الإجراءات المتكررة في Excel، مما يقلل الأخطاء ويوفر الوقت.
  • يمكنك إنشاؤها باستخدام المسجل وتعزيزها باستخدام VBA لمزيد من المرونة.
  • استخدم المراجع النسبية لاستيعاب نطاقات مختلفة وتجنب الخطوات المكررة.
  • احفظ كملف .xlsm وقم بإدارة الأمان لتشغيل وحدات الماكرو بثقة.

وحدات الماكرو في Excel وكيفية برمجتها

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

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

ما هو الماكرو في Excel بالضبط؟

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

لست بحاجة إلى معرفة البرمجة للبدء: يقوم المسجل بترجمة إجراءاتك إلى كود VBA. ومع ذلك، فإن بعض المعرفة بلغة VBA ستمكنك من إنشاء وظائف ونماذج مخصصة، وحتى تطبيقات مصغرة داخل برنامج Excel.

لماذا نستخدم وحدات الماكرو؟ مزايا حقيقية

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

تشمل مزاياه توفير الوقت، والتنفيذ المتسق (دون إغفال أي خطوة)، وإمكانية إنشاء اختصارات وأزرار لتسريع العمليات . إذا كنت تستخدم برنامج إكسل بشكل متقطع، فقد لا يكون الأمر مجديًا؛ ولكن إذا كنت تستخدمه يوميًا، فستلاحظ الفرق من اليوم الأول.

تمكين علامة التبويب المطور (Windows وMac)

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

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

كيفية إنشاء وحدات ماكرو باستخدام المسجل

يُعدّ المُسجّل مثاليًا للبدء. في قسم "المطور" > "تسجيل الماكرو" (أو Alt+T+M+R على نظام ويندوز)، قم بتعيين اسم وصفي. تذكّر: يجب أن يبدأ الاسم بحرف، بدون مسافات أو رموز.

اختر مكان الحفظ: في معظم الحالات، يُناسب خيار "هذا المصنف". إذا كنت ترغب في الاحتفاظ به متاحًا دائمًا، فاختر "مصنف الماكرو الشخصي"، وسيقوم Excel بإنشائه وحفظه في ملف Personal.xlsb ، والذي يُفتح مخفيًا باستخدام Excel.

يمكنك إضافة اختصار اختياري. لتجنب التعارضات (مثل فقدان Ctrl+Z)، يُنصح باستخدام اختصارات Ctrl+Shift. كما يمكنك كتابة وصف موجز وواضح (مفيد جدًا عند وجود العديد من وحدات الماكرو).

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

  كيفية إزالة الإعلانات في WPS Office بشكل فعال

عند الانتهاء، أوقف التسجيل. لتشغيله، انتقل إلى المطور > وحدات الماكرو (أو اضغط Alt+F8)، وحدد الماكرو الخاص بك، ثم انقر فوق تشغيل. سترى برنامج Excel يكرر الخطوات بنفس الترتيب تمامًا.

تشغيل وحدات الماكرو الخاصة بك وتحريرها وإدارتها

من قائمة المطور > وحدات الماكرو (Alt+F8)، يمكنك تشغيل وحدات الماكرو أو تعديلها أو حذفها. إذا اخترت "تحرير"، فسيتم فتح محرر Visual Basic مع الكود المسجل، والذي يمكنك تنظيفه وتحسينه (غالباً ما يتضمن خطوات زائدة).

يُعدّ تعيين ماكرو لزر أو شكل أمرًا في غاية السهولة: أدرج شكلًا، ثم انقر بزر الماوس الأيمن > تعيين ماكرو، واختر الماكرو، وانتهى الأمر. عند النقر على الشكل، سيتم تشغيله فورًا.

لإبقائه متاحًا بسهولة على شريط أدوات الوصول السريع، افتح قائمة شريط الأدوات (السهم لأسفل) > المزيد من الأوامر > ضمن "الأوامر المتاحة في"، اختر "وحدات الماكرو"، وأضف وحدات الماكرو الخاصة بك، وغيّر الأيقونة إذا رغبت. الآن سيكون لديك زر دائم حتى عندما لا تكون في وضع المطور.

إذا كنت بحاجة إلى إعادة استخدام الماكرو في مصنف آخر، يمكنك نسخ الوحدة النمطية من محرر Visual Basic. افتح محرر Visual Basic (Alt+F11)، واسحب الوحدة النمطية إلى المصنف المفتوح الآخر، أو استخدم تصدير/استيراد ملف .bas.

برمجة وحدات الماكرو في Excel باستخدام محرر Visual Basic (VBA)

لتجاوز وظيفة التسجيل، افتح المحرر بالضغط على Alt+F11. أدرج وحدة نمطية (إدراج > وحدة نمطية) وأنشئ روتينك الفرعي الأول. النمط الأساسي هو Sub Name() … End Sub.

على سبيل المثال، لعرض رسالة وكتابة قيمة في الخلية A1، يمكنك البدء بشيء بسيط. بهذه الطريقة ستفهم بنية البرنامج وكيفية استدعاء الماكرو من Excel (Alt+F8) أو تعيينه لزر، وذلك باستخدام عدد قليل جدًا من أسطر التعليمات البرمجية.

Sub Primera_Macro()
    Range("A1").Value = "Esto de las macros mola."
    MsgBox "Hola, querido amigo."
End Sub

مثال سريع آخر لتطبيق نمط النسبة المئوية على التحديد الحالي. هذا الماكرو يُكرر ما فعلته باستخدام المُسجِّل ، ولكن بكتابة الأمر مباشرةً:

Sub FormatoPorcentaje()
    Selection.Style = "Percent"
End Sub

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

المراجع المطلقة مقابل المراجع النسبية

بشكل افتراضي، يقوم المسجل بإنشاء وحدات ماكرو في الوضع المطلق: فهو يعمل دائمًا على نفس الخلايا (على سبيل المثال، B3) بغض النظر عن مكان وجودك أثناء تشغيله. إذا تغير موضع البيانات في عمليتك، فقد لا يكون هذا ما تحتاجه.

باستخدام خيار "استخدام المراجع النسبية"، يعمل الماكرو بالنسبة للخلية النشطة عند بدء التنفيذ. على سبيل المثال، إذا بدأت التسجيل في الخلية B3 وكتبت "الاسم الأول"، "الاسم الأخير"، وما إلى ذلك، ثم انتقلت إلى اليمين، فعند التشغيل من الخلية C4، سيكتب الماكرو نفس المعلومات بالنسبة للخلايا C4، D4، E4، وما إلى ذلك.

مثال نموذجي: إضافة عناوين إلى جدول يبدأ أحيانًا في الخلية B3 وأحيانًا في الخلية C5. في الوضع المطلق، ستتم الكتابة دائمًا في الخلية B3. أما في الوضع النسبي، فسيتم التكيف مع الخلية المحددة كبداية.

الأخطاء الشائعة عند تسجيل العمليات

من الأخطاء الشائعة تسجيل صيغة "سحب" لثلاثة صفوف مثلاً، والاعتقاد بأنها ستعمل مع جداول أطول. سيسجل البرنامج ما يعادل " ملء ثلاث خلايا لأسفل "، وليس "حتى نهاية الجدول".

الحل هو تغيير أسلوبك: استخدم النطاقات الديناميكية (على سبيل المثال، اكتشاف الصف الأخير)، أو الحلقات، أو طريقة CurrentRegion، أو اضبط الماكرو في VBA بعد تسجيله بحيث يتناسب مع أي حجم.

  كيفية جعل نظام التشغيل ويندوز 11 أكثر جمالاً وبساطة خطوة بخطوة

الممارسات الجيدة عند التسجيل

قبل التسجيل، قم بتجربة العملية يدويًا عدة مرات لتحسينها. سجّل مقاطع قصيرة ومحددة بدلًا من مقطع واحد طويل؛ فهذا يُسهّل حفظها ودمجها.

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

تشغيل وحدات الماكرو بعدة طرق

بالإضافة إلى مربع حوار وحدات الماكرو (Alt+F8)، يمكنك تشغيل وحدات الماكرو باستخدام شكل، أو زر في شريط أدوات الوصول السريع، أو عن طريق فتح المصنف. يمكنك حتى تشغيل الماكرو من خلال Excel من تطبيقات Office الأخرى، مما يسمح لك بأتمتة المهام المشتركة بين التطبيقات (على سبيل المثال، تحديث جدول وإرسال بريد إلكتروني عبر Outlook).

فكّر جيدًا في اختصارات لوحة المفاتيح: إذا خصصت Ctrl+Z لماكرو، فستفقد القدرة على التراجع أثناء فتح المصنف. لذا، يُنصح باستخدام اختصارات Ctrl+Shift لتجنب التعارضات.

حفظ المصنفات باستخدام وحدات الماكرو

عندما يحتوي ملف على كود VBA، احفظه كملف بامتداد .xlsm للحفاظ على الكود وإمكانية تشغيله. سيؤدي الحفظ كملف بامتداد .xlsx إلى حذف مشروع VBA . إذا كنت ترغب في استخدام وحدات ماكرو عامة، فاستخدم مصنف وحدات الماكرو الشخصية (Personal.xlsb).

الأمان وتمكين وحدات الماكرو

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

تعيين وحدات الماكرو للأزرار والأشكال وعناصر التحكم

لتمكين المستخدمين من تشغيل وحدات الماكرو تلقائيًا، قم بتعيين ماكرو لزر أو شكل أو عنصر تحكم. انقر بزر الماوس الأيمن على العنصر > تعيين ماكرو > تحديد. يمكنك أيضًا وضع أيقونة على الشريط أو شريط أدوات الوصول السريع وربطها بالماكرو.

إذا كنت تستخدم النماذج أو عناصر تحكم ActiveX، فيمكنك تعيين وحدات ماكرو أو إجراءات أحداث (على سبيل المثال، عند النقر) لها. وهذا يتيح واجهات أكثر سهولة في الاستخدام وعمليات موجهة.

أمثلة ماكرو مفيدة (VBA)

توضح هذه الأمثلة المهام الشائعة. يمكنك لصقها في وحدة نمطية (Alt+F11 > إدراج > وحدة نمطية) وتعديلها. تذكر توقيع المصنفات أو ضبط إعدادات الأمان إذا كانت مؤسستك تتطلب ذلك حتى تتمكن من تشغيلها دون تحذيرات.

انسخ المحتوى المحدد إلى موقع آخر في نفس الورقة: Selection.Copy Destination

Sub CopiarSeleccion()
    If TypeName(Selection) = "Range" Then
        Selection.Copy Destination:=Selection.Offset(0, 2)
    Else
        MsgBox "Selecciona un rango de celdas primero."
    End If
End Sub

اطبع الورقة النشطة: ActiveSheet.PrintOut

Sub ImprimirHojaActual()
    ActiveSheet.PrintOut
End Sub

احفظ الملف كملف إكسل يدعم وحدات الماكرو (.xlsm): ActiveWorkbook.SaveAs

Sub GuardarComoXlsm()
    Dim ruta As String
    ruta = ThisWorkbook.Path & Application.PathSeparator & "LibroConMacros.xlsm"
    ActiveWorkbook.SaveAs Filename:=ruta, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

قم بتطبيق التنسيق على نطاق (قم بتعديل النطاق حسب احتياجاتك): باستخدام النطاق (...)

Sub FormatoRango()
    With Range("A1:D10")
        .Font.Bold = True
        .Interior.Color = RGB(230, 230, 250)
        .Borders.LineStyle = xlContinuous
    End With
End Sub

ابحث عن قيمة في نطاق واعرض أول تطابق: Range(…).Find

Sub BuscarValor()
    Dim celda As Range
    Dim valor As String
    valor = InputBox("¿Qué valor quieres buscar?")
    If valor = "" Then Exit Sub
    Set celda = Range("A1:D1000").Find(What:=valor, LookIn:=xlValues, LookAt:=xlPart)
    If Not celda Is Nothing Then
        MsgBox "Encontrado en: " & celda.Address
        celda.Select
    Else
        MsgBox "No se encontró el valor especificado."
    End If
End Sub

حالة عملية: التنسيق كنسبة مئوية

التسجيل: ابدأ التسجيل، وقم بتسميته، واختر مكان حفظه، ويمكنك إضافة اختصار ووصف. حدد الخلايا وطبّق "النسبة المئوية" من علامة التبويب "الصفحة الرئيسية". أوقف التسجيل ثم أعد تشغيله بالضغط على Alt+F8. إذا كنت ترغب في تشغيله باستخدام كود مختصر، فاستخدم Selection.Style = "Percent" في VBA.

  تحسينات وإصلاحات SteamOS لجهاز Steam Deck

نصيحة: أثناء التسجيل، تجنب التبديل بين الخلايا دون داعٍ. تُسجّل هذه الحركات ذهابًا وإيابًا، وقد تُبطئ عملية التسجيل وتُفسد الماكرو.

أتمتة المهام الطويلة: وحدات الماكرو الصغيرة أفضل

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

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

تحرير وتنظيف الكود المسجل

يسجل البرنامج كل شيء: التحديدات، والنقرات، وتغييرات علامات التبويب. عند فتح محرر VBA، يقوم بإزالة التحديدات غير الضرورية (Select/Selection) باستبدالها بمراجع مباشرة (على سبيل المثال، Range("A1").Value = ... )، ويُجمّع التنسيقات في كتل With/End With.

بالإضافة إلى ذلك، يُضيف هذا البرنامج متغيرات ومعالجة أساسية للأخطاء. كما تمنع بعض عبارات "if" وعمليات التحقق البسيطة حدوث أخطاء عندما يكون النطاق فارغًا أو عندما لا يكون الاختيار كما هو متوقع.

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

كيف أنشئ نموذج مستخدم في إكسل؟ افتح محرر فيجوال بيسك (Alt+F11)، ثم انتقل إلى إدراج > نموذج مستخدم، وأضف عناصر التحكم (مربعات نص، أزرار، إلخ). يمكنك عرضه باستخدام ماكرو.

Sub MostrarFormulario()
    UserForm1.Show
End Sub

ومن هناك، قم بتعيين الإجراءات لأحداث عناصر التحكم (على سبيل المثال، النقر على زر) لتنفيذ المنطق الذي تحتاجه.

كيف يمكنني حماية/إلغاء حماية ورقة عمل تحتوي على وحدات ماكرو؟ استخدم هذه الإجراءات بتغيير كلمة المرور حسب الرغبة. فهي تتيح لك تفعيل الحماية أو تعطيلها بنقرة واحدة.

Sub ProtegerHoja()
    ActiveSheet.Protect Password:="segura", AllowFiltering:=True
End Sub

Sub DesprotegerHoja()
    ActiveSheet.Unprotect Password:="segura"
End Sub

كيف أحذف ماكرو؟ انتقل إلى المطور > وحدات الماكرو، وحدد الماكرو، ثم اضغط على زر الحذف. إذا كنت ترغب في حذف جميع التعليمات البرمجية من وحدة نمطية، فافتح محرر VBA (Alt+F11)، وحدد موقع الوحدة النمطية في المشروع، وانقر بزر الماوس الأيمن، ثم حدد إزالة الوحدة النمطية (يمكنك تصديرها أولاً إذا كنت ترغب في حفظها).

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

وحدات الماكرو في Excel
مقالة ذات صلة:
وحدات الماكرو في Excel: كيفية أتمتة المهام وزيادة إنتاجيتك