كيفية تسجيل ماكرو في إكسيل؟
النقاط الرئيسية
- تسجيل الماكرو يعني تسجيل الإجراءات التي تقوم بها في Excel.
- يجب عليك استخدام مسجل الماكرو لتسجيل الماكرو.
- يقوم مسجل الماكرو بإنشاء الكود في الخلف أثناء قيامك بالنشاط.
- في Excel، لا يمكنك التوقف مؤقتًا أثناء تسجيل الماكرو.
- لا يقوم مسجل الماكرو بإنشاء تعليمات برمجية مثالية، لذا تأكد من تنظيف التعليمات البرمجية بعد التسجيل.
سيساعدك هذا الدليل على تعلم جميع جوانب تسجيل الماكرو. سوف تتعلم أيضًا كيفية تنظيف الكود بعد حفظه.
اذا هيا بنا نبدأ.
ما هو مسجل الماكرو؟
يعد Excel Macro Recorder أداة يمكنها تسجيل (وليس كل) الإجراءات التي تقوم بها في Excel وإنشاء تعليمات برمجية لها. قم بمهمة محددة مرة واحدة، وسيقوم بإنشاء ماكرو لذلك، وفي المرة التالية بدلاً من القيام بهذه المهمة يدويًا، تحتاج إلى تشغيل هذا الرمز.
فكر في كاميرا الفيديو، فهي تعمل مثلها وتولد رمزًا للنشاط الذي تقوم به.
يجب أن تفهم أنه قد تكون هناك أوقات لا يتمكن فيها مسجل الماكرو من توفير التعليمات البرمجية. ومع ذلك، لا تزال هذه طريقة رائعة لتعلم الكود إذا كنت لا تعرفه.
يمكنك العثور على زر مسجل الماكرو في علامة تبويب المطور .
يعد استخدام VBA للبرمجة في Excel أحد المهارات المتقدمة في Excel وللبدء في استخدام VBA، يجب أن تكون ماهرًا في تسجيل وحدات الماكرو.
التخطيط قبل تسجيل الماكرو
إذا كنت ترغب في تسجيل مقطع فيديو، فأنت بحاجة إلى القيام ببعض التخطيط قبل ذلك، مثل إنشاء نص، والحصول على الإضاءة المناسبة، وما إلى ذلك.
وبالمثل، يتطلب تسجيل الماكرو بعض التخطيط.
النقطة المهمة هي أنك لا ترغب في الحصول على رمز للنشاط الذي لا ترغب في تشغيله أثناء استخدام الماكرو المسجل مرة أخرى.
أفضل طريقة للقيام بذلك هي كتابة الخطوات التي تحتاج إلى إكمالها ثم الالتزام بها أثناء التسجيل.
سنقوم هنا بتسجيل ماكرو يمكنه تطبيق التنسيق التالي على الخلية المحددة:
- لون الخط: أحمر
- حجم الخط: 12
- نمط الخط : فيردينا
- نص الخط: غامق
كما قلت، التخطيط ضروري، وقبل تسجيل هذا الماكرو، هناك شيء واحد نحتاج إلى الاهتمام به، وهو تحديد الخلية المستهدفة قبل أن نبدأ التسجيل.
كما قلت، التخطيط ضروري، وقبل تسجيل هذا الماكرو، هناك شيء واحد نحتاج إلى الاهتمام به، وهو تحديد الخلية المستهدفة قبل أن نبدأ التسجيل.
والسبب هو أننا إذا قمنا بتحديد خلية أثناء تسجيل الماكرو، فسيتم حفظ هذا التحديد أيضًا.
لذا، عند تشغيل هذا الماكرو مرة أخرى، فإنه سيحدد تلك الخلية المعينة لتطبيق كل التنسيق عليها. ولكن ما نريده هو تطبيق التنسيق على الخلية النشطة (المحددة).
خطوات تسجيل ماكرو باستخدام مسجل الماكرو
لحفظ ماكرو في Excel، يمكنك اتباع الخطوات التالية:
- أولاً، حدد الخلية A4 (هذه هي الخلية التي سنطبق فيها التنسيق ونسجل الماكرو الخاص بنا).
- بعد ذلك، انتقل إلى “علامة تبويب المطور”، وقبل الضغط على الزر “حفظ”، قم بتمكين المرجع النسبي (سنتعلم المزيد عن هذا في بضع دقائق).
- اضغط على زر التسجيل.
- وفي اللحظة التي تنقر عليها، سوف تحصل على مربع حوار لملء بعض التفاصيل حول الماكرو الذي ستقوم بتسجيله (نعم، نحن بحاجة إلى ملئه).
- اسم الماكرو: “HighlightCell”.
- مفتاح التشغيل السريع: اضغط على Shift+H لتعيين اختصار لوحة المفاتيح Control+Shift+H.
- تخزين الماكرو في: حدد Personal Macro Binder.
- الوصف: يطبق هذا الماكرو اللون الأحمر وحجم الخط 12 ونمط الخط Verdana ويجعل الخط غامقًا.
- وأخيرا، انقر فوق موافق.
- عند هذه النقطة، يقوم برنامج Excel بتمييز كل شيء بنجمة لحفظ كل شيء (يمكنك رؤية الرمز الموجود على شريط الحالة الذي يقول “يتم تسجيل ماكرو، انقر لإيقاف التسجيل”).
- والآن قم بتطبيق التنسيقات الأربعة التي قررناها.
- لون الخط: أحمر
- حجم الخط: 12
- نمط الخط : فيردينا
- نص الخط: غامق
- بمجرد الانتهاء من ذلك، ارجع إلى علامة تبويب المطور وانقر على “إيقاف التسجيل” أو يمكنك أيضًا إيقاف التسجيل من شريط الحالة حيث يظهر “انقر هنا لإيقاف التسجيل”. تسجيل”.
تهانينا! لقد قمت بذلك، وفي هذه المرحلة لديك ماكرو محفوظ في المصنف الخاص بك، ولكن الخطوة التالية الآن هي فهمه.
كيف يقوم مسجل الماكرو بإنشاء التعليمات البرمجية
يقوم مسجل الماكرو بإنشاء رمز لك في الخلف أثناء قيامك بالأنشطة.
لفهم هذا، عليك أولاً رؤية الكود. للقيام بذلك، افتح محرر Visual Basic ، انتقل إلى علامة التبويب المطور ➜ محرر Visual Basic.
ثم افتح الوحدة 1 حيث تم تخزين التعليمات البرمجية الخاصة بك.
في نافذة التعليمات البرمجية، يمكنك رؤية التعليمات البرمجية بأكملها التي تم إنشاؤها بواسطة مسجل الماكرو بالإضافة إلى جميع التفاصيل التي أدخلتها.
كما ترى، فإن اسم الماكرو ومفتاح الاختصار والوصف موجود قبل الرمز.
الآن دعونا نفهم الكود (كما قلت سابقًا، مسجل الماكرو لا ينشئ كودًا مثاليًا، لذلك عليك تنظيفه في كل مرة، وسنتعلم ذلك في الجزء التالي).
لقد أكملت جميع الأنشطة الأربعة وقام مسجل الماكرو بإنشاء رمز مكون من أربعة أجزاء.
- في الجزء الأول، يقول الكود أن لون خط الخلية المحددة يجب أن يكون أحمر، واستخدم قيمة رقمية لذلك.
- يشير الجزء الثاني من الكود إلى أن حجم الخط للخلايا المحددة يجب أن يكون “12”.
- وفي الجزء الثالث يقول أن نمط الخط يجب أن يكون “فيردانا”.
- وأخيرا، في الجزء الرابع يقول أن خط الخلية المحددة يجب أن يكون عريضا.
تنظيف الماكرو المسجل
في هذه المرحلة، قمت بتسجيل الماكرو الأول الخاص بك وأنت تعرف كيف يتم إنشاء هذا الرمز. لكنك تحتاج إلى تنظيف الكود الموجود في الوحدة.
Sub HighlightCell() ' 'HighlightCell Macro 'This macro applies a red color, font size 12, 'font style Verdana, and makes the font bold ' 'Keyboard Shortcut: Ctrl+Shift+H ' With Selection.Font .Color = -16776961 .TintAndShade = 0 End With With Selection.Font .Name = "Calibri" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNo .Color = -16776961 .TintAndShade = 0 .ThemeFont = xlThemeFontMinor End With With Selection.Font .Name = "Verdana" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .Color = -16776961 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With Selection.Font.Bold = True End Sub
إذا نظرت عن كثب، فهذا أطول بكثير من الأنشطة التي يمكنه القيام بها. هناك العديد من الخصائص المضمنة في هذا الرمز غير المطلوبة.
ليس فقط مع هذا الكود، في كل مرة تقوم فيها بتسجيل ماكرو يجب عليك تنظيفه في كل مرة.
ولكن قبل البدء في تنظيف هذا الرمز، عليك أن تتذكر الأنشطة الأربعة التي قمت بها والتي تحتاج إلى الحصول على رمز لها في وحدتك:
- لون الخط: أحمر
- حجم الخط: 12
- نمط الخط : فيردينا
- نص الخط: غامق
دعونا نحدد سطور التعليمات البرمجية التي تؤدي هذه الأنشطة الأربعة.
لقد حددت الآن سطور التعليمات البرمجية التي تقوم بالأنشطة الفعلية التي قمت بها، ولدينا أيضًا هذا الرمز المكون من أربعة أجزاء.
حان الوقت لتنظيف الكود وإزالة جميع الخطوط غير المرغوب فيها. اتبع الخطوات التالية.
- في الجزء الأول، تحتاج إلى رمز السطر الذي يطبق لون الخط الأحمر، وبالتالي فإن خاصية “TintAndShade” لا تتطلب ذلك.
- الآن في الجزء الثاني نحتاج إلى حجم الخط، وليس جميع الخصائص الأخرى، لذا قم بإزالتها.
- بعد ذلك، في الجزء الثالث، نحتاج إلى خاصية اسم الخط، لذا قم بإزالة جميع الخصائص الأخرى.
- في الجزء الرابع، لديك سطر واحد فقط من التعليمات البرمجية، وهو جعل الخط عريضًا.
عند هذه النقطة، يبدو الكود بهذا الشكل، وهو أقل بكثير من الكود الذي تم إنشاؤه بواسطة مسجل الماكرو.
Sub HighlightCell() ' 'HighlightCell Macro 'This macro applies a red color, font size 12, 'font style Verdana, and makes the font bold ' 'Keyboard Shortcut: Ctrl+Shift+H ' With Selection.Font .Color = -16776961 End With With Selection.Font .Size = 12 End With With Selection.Font .Name = "Verdana" End With Selection.Font.Bold = True End Sub
ولكن لا يزال بإمكانك فعل المزيد.
إذا نظرت عن كثب إلى الكود، فقد استخدم “With Selection.Font” أربع مرات، ولكن نظرًا لأنك تشير إلى نفس الكائن لجميع الخصائص الأربع، فيمكنك استخدامه مرة واحدة.
وبالتالي فإن الكود النهائي سيكون:
Sub HighlightCell() ' 'HighlightCell Macro 'This macro applies a red color, font size 12, 'font style Verdana, and makes the font bold ' 'Keyboard Shortcut: Ctrl+Shift+H ' With Selection.Font .Color = -16776961 .Name = "Verdana" .Size = 12 .Bold = True End With End Sub
عند تشغيل هذا الكود، فإنه سيقوم بنفس الأنشطة التي قمت بتسجيلها.
ماذا فعلت؟
في التعليمات البرمجية الجديدة، لديك فقط أسطر من التعليمات البرمجية التي تؤدي الأنشطة التي تحتاجها.
النقطة التي يجب فهمها هنا هي أنه مع كل كائن توجد دائمًا خصائص، وعندما يسجل مسجل الماكرو، فإنه يضيف كل تلك الخصائص مع هذا الكائن حتى لو لم تستخدمها.
لهذا السبب تحتاج إلى إزالة كل هذه الخصائص من الكود.
والشيء الآخر هو أنه حتى إذا كنت تستخدم كائنًا واحدًا فقط في التعليمات البرمجية الخاصة بك، فإن مسجل الماكرو يشير إليه مرارًا وتكرارًا عند قيامك بأنشطة مختلفة ولهذا السبب استخدمت “مع التحديد. الخط” مرة واحدة وأضفت جميع الخصائص الموجودة أسفله .
في جميع المواقف، لتنظيف أي تعليمات برمجية تم إنشاؤها بواسطة مسجل الماكرو، يجب عليك تحديد الأسطر الفعلية من التعليمات البرمجية التي تنفذ الأنشطة التي تحتاجها وإزالة الباقي.
عند تنظيف كود الماكرو المحفوظ، فإن أفضل طريقة هي تصحيح الكود خطوة بخطوة.
اقرأها
- افتح محرر VBA ونافذة Excel جنبًا إلى جنب، ثم اضغط على F8 لتشغيل التعليمات البرمجية خطوة بخطوة.
- نظرًا لأن نافذة Excel مفتوحة على الجانب، يمكنك معرفة سطر التعليمات البرمجية الذي ينفذ النشاط.
- وبمجرد تحديد الكود الذي تحتاجه ويمكنك حذف الكود، وهو أمر غير ضروري.
قم بتسمية ماكرو
في كل مرة تقوم فيها بتسجيل ماكرو، من الضروري إعطاء اسم لهذا الماكرو، ولكن هناك بعض القواعد التي يجب أن يتوافق الاسم معها:
- يمكن أن يصل طول اسم الماكرو إلى 80 حرفًا.
- لا يمكنك استخدام المسافات أو علامات الترقيم أو الأحرف الخاصة.
- يجب أن يبدأ بحرف.
وبصرف النظر عن هذه القواعد، هناك بعض الكلمات التي يحظر VBA استخدامها كاسم.
من ناحية أخرى، من الضروري استخدام اسم ذي معنى بدلاً من وجود أسماء افتراضية مثل Macro1 أو Test1.
نظرًا لأنه لا يمكنك استخدام المسافات في اسم ماكرو، يمكنك استخدام الشرطة السفلية أو تكبير الحرف الأول من كل كلمة لزيادة إمكانية القراءة.
تخزين الماكرو المسجل
قبل تسجيل الماكرو، يجب عليك تحديد المكان الذي تريد حفظه فيه ولديك ثلاثة خيارات لذلك:
- مصنف جديد : يمكنك تحديد هذا الخيار إذا كنت تريد حفظ الماكرو الخاص بك في مصنف جديد.
- هذا المصنف : من خلال تحديد هذا الخيار، يمكنك حفظ الماكرو في المصنف الحالي.
- مصنف الماكرو الشخصي : باستخدام هذا الخيار، يمكنك الوصول إلى وحدات الماكرو من كافة المصنفات.
مرجع نسبي
عند تسجيل الماكرو أعلاه، طلبت منك تحديد “استخدام المراجع النسبية” قبل الضغط على زر “بدء التسجيل”.
في Excel، عندما تقوم بتسجيل ماكرو، يستخدم Excel “المرجع المطلق” بشكل افتراضي. ومع ذلك، يمكنك تغييره قبل تسجيل الماكرو.
النقطة المهمة هي أن استخدام المراجع النسبية أمر بالغ الأهمية إذا كنت تريد أن ينفذ الماكرو النشاط المسجل في أي مكان في ورقة العمل.
لكي تفهم الفرق بين الطريقتين المرجعيتين، أريدك أن تسجل النشاط بطريقتين مختلفتين.
- أولاً، حدد الخلية A1 وابدأ في تسجيل ماكرو (بدون تمكين “استخدام المرجع النسبي”)، ثم حدد الخلية E5 .
- سوف تحصل على الكود أدناه بواسطة مسجل الماكرو:
Sub AbsoluteReferenceMacro() Range("E5").Select End Sub
- مرة أخرى، حدد الخلية A1، وقم بتمكين “استخدام المرجع النسبي” وقم بتسجيل نفس النشاط (حدد الخلية E5).
- ولكن في الوقت الحالي، الرمز الذي حصلت عليه مختلف:
Sub RelativeReferenceMacro() ActiveCell.Offset(4, 4).Range(“A1”).Select End Sub
لقد قمت بتسجيل هذين الرمزين للقيام بنفس النشاط ولكن باستخدام أوضاع مرجعية مختلفة. يمين؟
رمز الماكرو الأول سهل الفهم؛ يقول تحديد الخلية E5.
وإذا قمت بتشغيل هذا الماكرو، فإنه يفعل نفس الشيء، وهو تحديد الخلية E5، أيًا كانت الخلية التي حددتها في هذه المرحلة.
من ناحية أخرى، يقول رمز الماكرو الثاني شيئًا آخر، وإذا قمت بتحديد خلية أخرى قبل تشغيل هذا الرمز، فسيتم تحديد خلية مختلفة.
لماذا؟
عندما قمت بتسجيل هذا الماكرو، كانت الخلية النشطة هي A1، ثم قمت بتحديد E5، وهي أربع خلايا لأسفل وأربع خلايا على يمين الخلية A1.
الآن، نظرًا لأنك قمت بحفظ هذا الماكرو بمرجع نسبي، فسيؤدي هذا دائمًا إلى تحديد الخلية، التي تقع على بعد أربع خلايا لأسفل وأربع خلايا على يمين الخلية النشطة.
لنفترض أنه إذا كانت الخلية النشطة هي D4، فإنها ستحدد الخلية H8، وهي أربع خلايا إلى الأسفل وأربع خلايا إلى اليمين.
يمكنك تغيير المرجع في أي وقت، حتى في منتصف التسجيل.
كسر الماكرو
لسوء الحظ، لا يسمح لك Excel بإيقاف الماكرو مؤقتًا أثناء التسجيل. هذا ممكن في Microsoft Word، ولكن ليس في Excel.
إذا كنت تقوم بتسجيل ماكرو حيث تحتاج إلى تنفيذ العديد من الأنشطة، فمن الأفضل تسجيله على أجزاء بحيث يكون هناك احتمال أقل لحدوث الأخطاء.
قيود مسجل الماكرو
نعم، بعض القيود تأتي مع مسجل الماكرو. هناك العديد من الأشياء التي يمكنك القيام بها باستخدام تعليمات VBA البرمجية، ولكن لا يمكن لمسجل الماكرو تسجيل كافة الأنشطة.
- غير قادر على إنشاء وظيفة مخصصة : يسمح لك VBA بإنشاء وظيفة مخصصة يمكنك استخدامها في ورقة العمل، ولكن هذا غير ممكن عند تسجيل ماكرو.
- لا يمكن استخدام الوظائف المضمنة : يحتوي VBA على وظائفه ( وظائف VBA )، ولكن لا يمكنك استخدامها مع مسجل الماكرو.
- غير قادر على اختبار الشروط : عند تسجيل ماكرو، لا يمكنك استخدام عبارة VBA IF ثم Else للتحقق من الشروط.
- غير قادر على التكرار : في VBA، يمكنك استخدام عبارات التكرار أثناء كتابة التعليمات البرمجية، ولكن هذا غير ممكن مع مسجل الماكرو.
- لا يمكن تنفيذ نشاط باستخدام كائن : عند تسجيل ماكرو، لا يمكنك تنفيذ إجراء دون تحديد كائن فعليًا. على سبيل المثال، إذا كنت تريد جعل النص غامقًا من خلية معينة، فيجب عليك أولاً تحديد تلك الخلية.
هل يستحق استخدام مسجل الماكرو؟
أراهن أن هذا السؤال يدور في ذهنك، وهو صحيح. اسمحوا لي أن أشارككم قصة شخصية للإجابة على هذا السؤال.
قبل بضع سنوات كنت أعمل على بعض أكواد VBA لإدراج جدول محوري ، وفي ذلك الوقت لم أكن على علم بجميع الكائنات التي أحتاج إلى استخدامها لكتابة هذا الرمز. إذن ما فعلته هو أنني قمت بتسجيل ماكرو أثناء إنشاء جدول محوري يدويًا.
بعد ذلك، ألقيت نظرة على هذا الرمز لفهم العملية برمتها المتعلقة بإدراج جدول محوري. نعم، لم يكن هذا الرمز مثاليًا ولكنه أعطاني فكرة للكتابة.
ما أعنيه هو أنه قد تكون هناك مواقف تحتاج فيها إلى كتابة التعليمات البرمجية، ويمكن أن يساعدك مسجل الماكرو في ذلك الوقت. ساعدني مسجل الماكرو أيضًا في كتابة الأكواد لقالب المخزون هذا.
طَوّق
يجب عليك التركيز على النقاط التالية لتسجيل الماكرو بنجاح:
- حدد المصنف الذي ستحفظ فيه الماكرو وتغلق كافة المصنفات الأخرى.
- تأكد من تحديد الكائن الصحيح لتسجيل الماكرو.
- تأكد من تحديد ما إذا كنت تريد استخدام المراجع المطلقة أو النسبية قبل حفظ الماكرو.
- خطط للإجراءات التي تريد اتخاذها.
الدروس ذات الصلة
أسئلة مكررة
إنه موجود في مجموعة التعليمات البرمجية في علامة التبويب “المطور”.
يمكنك رؤيته من محرر Visual Basic.
ليس حقًا، أنت بحاجة إلى تنظيف هذا الرمز بعد حفظه.