اذهب إلى المحتوى

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

  • تنسيق الخلايا.
  • تنسيق الخطوط.
  • إضافة حدود للخلايا.
  • مسح محتويات الخلايا.
  • إضافة خلايا أو صفوف أو أعمدة.

تغيير حجم خط الخلية

نستخدم لتغيير حجم خط الخلية التعليمة التالية:

expression.Font.Size = "قيمة حجم الخط الذي نريده"

حيث تعبّر expression عن الكائن الذي سنتعامل معه، وفي الغالب يكون من النوع Range بدون ذكر اسم الملف والصفحة اللذين يحويان هذا النطاق، إلا إذا كان تنفيذ الشيفرة في غير الصفحة النشطة أو في غير الملف النشط، أي أنها تصبح بالشكل التالي:

Range("عنوان الخلية").Font.Size = "قيمة حجم الخط الذي نريده"

والقيمة الافتراضية لحجم الخط هي 11.

جعل خط الخلية عريضا

نستخدم لذلك التعليمة التالية:

Range("عنوان الخلية").Font.Bold = True or False

حيث إن القيمة True للخط العريض، والقيمة False للخط العادي، وهي القيمة الافتراضية.

تغيير لون خط الخلية

ويمكن تنفيذ ذلك بعدة طرق، وهي:

  • عن طريق الاسم الصريح للون، والتعليمة كالتالي:
Range("عنوان الخلية").Font.Color = vbColor

حيث إن القيمة الافتراضية للون الخط هي vbBlack.

  • عن طريق رقم الفهرس للون، والتعليمة كالتالي:
Range("عنوان الخلية").Font. ColorIndex = "الرقم المرجعي للون"

حيث تكون القيمة الرقمية للون بين الرقم 1 والرقم 56 وفق المرفق بالصورة التالية، والقيمة الافتراضية للون الخط هي 1.

001ColorIndex.PNG

  • عن طريق نظام الـ RGB للألوان: الفكرة الأساسية من نظام RGB هي القدرة على إعادة إنتاج أي لون آخر بناءً على نسب تداخل ثلاثة ألوان أساسية: الأحمر R والأخضر G والأزرق B، حيث إن وجود هذه الألوان معًا بقيمتها الكاملة 255 ينتج اللون الأبيض، بينما غياب قيمتها لتصل إلى 0 ينتج اللون الأسود.

هذا النوع من أنظمة الألوان ضوئي بالكامل، لذا فهو مثالي للشاشات وأجهزة العرض المختلفة، ونتلاعب بقيم كل من الألوان الأساسية للحصول على أي لون آخر قد نريده، وفي العادة تتراوح شدة كل لون ضمن مجال من 0 حتى 255.

ويُعَد نظام ألوان RGB نظام إضافة، حيث تعني كل قيمة مضافة لأحد الألوان المزيد من الضوء، أي أن الألوان ذات القيم الكبرى (في كل من R وG وB) أفتح، بينما تلك التي تمتلك قيمًا دُنيا أقتم.

والتعليمة التي تحدد لون الخط هي كالتالي:

Range("عنوان الخلية").Font. Color = RGB(0,0,0)

تغيير لون الخلية

وذلك عن طريق التعليمة:

Range("عنوان الخلية").Cells.Interior.ColorIndex = "الرقم المرجعي للون"
اقتباس

يمكن استخدام الاسم الصريح للون ونظام الـ RGB كما في حالة تغيير لون الخط.

محاذاة النصوص

كما نعلم لدينا نوعان من المحاذاة للنصوص، وهما: المحاذاة الأفقية، والمحاذاة العمودية.

المحاذاة الأفقية

تحدد موضع النص من الخلية أفقيًّا، والتعليمة الخاصة بها هي:

Sub alignment_H()
expression.HorizontalAlignment = type
End Sub

حيث تأخذ type إحدى القيم التالية:

  • xlHAlignLeft محاذاة النص يسار الخلية.
  • xlHAlignRight محاذاة النص يمين الخلية.
  • xlHAlignCenter محاذاة النص منتصف الخلية.

المحاذاة العمودية

تحدد موضع النص من الخلية أفقيًّا، والتعليمة الخاصة بها هي:

Sub alignment_V()
expression. VerticalAlignment= type
End Sub

حيث تأخذ type إحدى القيم التالية:

  • xlVAlignTop محاذاة النص أعلى الخلية.
  • xlVAlignBottom محاذاة النص أسفل الخلية.
  • xlVAlignCenter محاذاة النص منتصف الخلية.

تفعيل الخلية أو الصفحة

لجعل الخلية أو الصفحة نشطةً (مُفعَّلةً) نستخدم التعليمة التالية:

Sub active()
expression. Activate
End Sub

تغيير عرض الخلية

نستخدم لذلك التعليمة التالية:

Range("عنوان الخلية").ColumnWidth = "قيمة عرض الخلية الذي نريده "

حيث إن القيمة الافتراضية لعرض الخلية هي 8.43.

مثال

نريد إنشاء الخلية A2 التي تحوي القيمة 5000، والخلية B1 التي تحوي القيمة 48، ونريد جعل الخط عريضًا حجمه 20، ولونه أبيض، ولون خلفية الخلية أخضر داكنًا، وجعل المحتوى يتوسط الخلايا، ولذلك نكتب الإجراء التالي:

Sub example()
Range("A2") = "5000"
Range("B2") = "48"

Range("A2:B2").Font.Bold = True
Range("A2:B2").Font.Size = 20
Range("A2:B2").Font.Color = RGB(255, 255, 255)
Range("A2:B2").Cells.Interior.ColorIndex = 10
Range("A2:B2").HorizontalAlignment = xlHAlignCenter

End Sub

002Example.gif

إضافة حدود للخلية

نستخدم لذلك التعليمة التالية:

Range("عنوان الخلية").Borders(direction).LineStyle = type

حيث إن:

  • direction: نُحدد عن طريقها مكان الحدود للخلية، حيث تأخذ القيم التالية:
  • XlDiagonalDown لوضع خط يقطع الخلية إلى مثلثين يبدأ من الزاوية اليسرى للخلية.
  • XlDiagonalUp لوضع خط يقطع الخلية إلى مثلثين يبدأ من الزاوية اليمنى للخلية.
  • XlEdgeBottom لوضع خط للخلية من الأسفل.
  • XlEdgeLeft لوضع خط للخلية من اليسار.
  • XlEdgeRigh لوضع خط للخلية من اليمين.
  • XlEdgeTop لوضع خط للخلية من الأعلى.
  • XlInsideHorizonta لوضع خطوط أفقية للخلايا، لكن يجب أن يحوي المجال عدة أعمدة، وتكون الخطوط للخلايا بين بداية المجال ونهايته.
  • XlInsideVertical لوضع خطوط عمودية للخلايا، لكن يجب أن يحوي المجال عدة أعمدة، وتكون الخطوط للخلايا بين بداية المجال ونهايته.
  • LineStyle: تحدد شكل الخط الذي سنضعه للخلية، ويأخذ القيم التالية:
  • XlContinuous الخط الاعتيادي (خط متصل).
  • Xldash الخط عبارة عن مجموعة شَرْطَات (متقطع) بالشكل التالي -------
  • XlDashDot الخط عبارة عن مجموعة متتابعة بالشكل، شَرْطَة تليها نقطة.
  • XlDashDotDot الخط عبارة عن مجموعة متتابعة بالشكل، شَرْطَة تليها نقطتان.
  • XlDot الخط منقط بالشكل التالي ……..
  • XlDouble الخط عبارة عن خطين عاديين فوق بعضهما.
  • XlLineStyleNone لإلغاء تنسيق الحدود الموجودة بالخلية.
  • XlSlantDashDot الخط عبارة عن مجموعة متتابعة بالشكل، شَرْطَة مقطوعة بشكل مائل تليها نقطة.

ولإضافة حدود من كافة الاتجاهات للخلية، نكتب الصيغة السابقة كالتالي:

Range("عنوان الخلية").Borders.LineStyle = type

003Borders.gif

تغيير ثخانة حدود الخلية

نستخدم لذلك التعليمة التالية:

Range("عنوان الخلية").Borders.value = "قيمة ثخانة الحدود للخلية"

حذف محتويات الخلايا

يمكن حذف محتويات الخلايا بعدة طرق، ومنها استخدام الأمر Delete والأمر Clear والأمر ClearContents والأمر ClearFormats، ولكلٍ منها عمل مخصص.

الأمر Delete

يُستخدم لحذف الخلايا مع مكانها ضمن البيانات، ويؤدي استعمال هذا الأمر إلى إزاحة الخلايا المتبقية باتجاه مكان الخلايا المحذوفة، والشكل العام لصيغة الأمر هو:

Sub Delete()
Rang("الخلايا أو النطاق الذي نريد حذفه").Delete (Shift)
End Sub

حيث إن shift وسيط اختياري يُحدد مكان إزاحة الخلايا، ويأخذ القيم التالية:

  • xlShiftToLeft إزاحة الخلايا المتبقية لموضع الخلايا المحذوفة من اليسار، وهي القيمة الافتراضية.
  • xlShiftUp إزاحة الخلايا المتبقية لموضع الخلايا المحذوفة من الأسفل.

مثال

بالعودة إلى المثال السابق نريد حذف الخانات من A1:A3، وذلك باستخدام الطرق السابقة، ولذلك نكتب التعليمات التالية:

Sub Delete()
Range("A1:A3").Delete
End Sub

004Delete.gif

الأمر Clear

يُستخدم لحذف بيانات الخلية وتنسيقاتها مع الحفاظ على موضع البيانات، والشكل العام لصيغة الأمر:

Sub Clear()
Range("الخلايا أو النطاق الذي نريد حذفه").Clear
End Sub

مثال

لنجرب نفس المثال السابق، فنكتب الإجراء كالتالي:

Sub Clear()
Range("A1:A3").Clear
End Sub

005Clear.gif

الأمر ClearContents

يُستخدم لحذف البيانات، ولكن هذا الأمر يُحافظ على موضع وتنسيق الخلية، والشكل العام لصيغة الأمر هو:

Sub Clear_Contents ()
Range("الخلايا أو النطاق الذي نريد حذفه"). ClearContents
End Sub

مثال

نُطبِّق الأمر على مثالنا السابق، فنكتب الإجراء التالي:

Sub Clear_Contents ()
Range("A1:A3"). ClearContents
End Sub

006ClearContents.gif

الأمر ClearFormats

يُستخدم لحذف تنسيق الخلية مع إبقاء المحتوى، والشكل العام لصيغة الأمر هو:

Sub Clear_Contents ()
Range("الخلايا أو النطاق الذي نريد حذفه"). ClearFormats
End Sub

مثال

نُطبِّق الأمر على مثالنا السابق، فنكتب الإجراء التالي:

Sub Clear_Contents ()
Range("A1:A3"). ClearFormats
End Sub

007ClearFormats.gif

إدراج خلايا أو أسطر أو أعمدة

التعليمة المسؤولة عن الإدراج هي التعليمة Insert

إدراج خلايا

نُدرج خلايا جديدةً عن طريق الأمر التالي:

Sub insert()
expression. Insert (Shift)
End Sub

حيث يحدد الوسيط Shift اتجاه إدراج البيانات، ويأخذ القيم التالية:

  • xlShiftDown تُدرج خلايا أسفل النطاق المحدد.
  • xlShiftToRight تُدرج خلايا يمين النطاق المحدد.

مثال

نريد إدراج خلايا ضمن بياناتنا في الجدول التالي، بحيث تكون الخلايا المضافة للأعلى ضمن النطاق A1:B5:

008Insert.PNG

نكتب الإجراء التالي:

Sub Insert()
Range("A1:B5").Insert xlShiftDown
End Sub

009Insert.gif

إدراج أسطر أو أعمدة

نُدرجها عن طريق الأمر التالي:

Sub insert()
expression. Insert 
End Sub

مثال

نريد إدراج 3 صفوف ضمن بياناتنا في جدول البيانات السابق، ولذلك نكتب الإجراء التالي:

Sub Insert()
Range("2:5").Insert 
End Sub

010Insert.gif

نلاحظ أنه أُضيفت 3 أسطر ابتداءً من السطر رقم 2، وأن بقية البيانات أُزيحت للأسفل. ولإضافة أعمدة سنتبع نفس الأسلوب، ولكن المجال يتضمن أعمدةً فقط، وبفرض أننا نريد إضافة عمود واحد يكون الإجراء كالتالي:

Sub Insert()
Range("A:A").Insert 
End Sub

011Insert.gif

هنا تُزاح البيانات نحو اليسار في النسخة الإنجليزية، وإلى اليمين في النسخة العربية.

خاتمة

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

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...