تعلمنا في مقال استخدام الشيفرات لتنفيذ العمليات الأساسية في مايكروسوفت إكسل 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.
- عن طريق نظام الـ 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
إضافة حدود للخلية
نستخدم لذلك التعليمة التالية:
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
تغيير ثخانة حدود الخلية
نستخدم لذلك التعليمة التالية:
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
الأمر Clear
يُستخدم لحذف بيانات الخلية وتنسيقاتها مع الحفاظ على موضع البيانات، والشكل العام لصيغة الأمر:
Sub Clear() Range("الخلايا أو النطاق الذي نريد حذفه").Clear End Sub
مثال
لنجرب نفس المثال السابق، فنكتب الإجراء كالتالي:
Sub Clear() Range("A1:A3").Clear End Sub
الأمر ClearContents
يُستخدم لحذف البيانات، ولكن هذا الأمر يُحافظ على موضع وتنسيق الخلية، والشكل العام لصيغة الأمر هو:
Sub Clear_Contents () Range("الخلايا أو النطاق الذي نريد حذفه"). ClearContents End Sub
مثال
نُطبِّق الأمر على مثالنا السابق، فنكتب الإجراء التالي:
Sub Clear_Contents () Range("A1:A3"). ClearContents End Sub
الأمر ClearFormats
يُستخدم لحذف تنسيق الخلية مع إبقاء المحتوى، والشكل العام لصيغة الأمر هو:
Sub Clear_Contents () Range("الخلايا أو النطاق الذي نريد حذفه"). ClearFormats End Sub
مثال
نُطبِّق الأمر على مثالنا السابق، فنكتب الإجراء التالي:
Sub Clear_Contents () Range("A1:A3"). ClearFormats End Sub
إدراج خلايا أو أسطر أو أعمدة
التعليمة المسؤولة عن الإدراج هي التعليمة Insert
إدراج خلايا
نُدرج خلايا جديدةً عن طريق الأمر التالي:
Sub insert() expression. Insert (Shift) End Sub
حيث يحدد الوسيط Shift
اتجاه إدراج البيانات، ويأخذ القيم التالية:
- xlShiftDown تُدرج خلايا أسفل النطاق المحدد.
- xlShiftToRight تُدرج خلايا يمين النطاق المحدد.
مثال
نريد إدراج خلايا ضمن بياناتنا في الجدول التالي، بحيث تكون الخلايا المضافة للأعلى ضمن النطاق A1:B5:
نكتب الإجراء التالي:
Sub Insert() Range("A1:B5").Insert xlShiftDown End Sub
إدراج أسطر أو أعمدة
نُدرجها عن طريق الأمر التالي:
Sub insert() expression. Insert End Sub
مثال
نريد إدراج 3 صفوف ضمن بياناتنا في جدول البيانات السابق، ولذلك نكتب الإجراء التالي:
Sub Insert() Range("2:5").Insert End Sub
نلاحظ أنه أُضيفت 3 أسطر ابتداءً من السطر رقم 2، وأن بقية البيانات أُزيحت للأسفل. ولإضافة أعمدة سنتبع نفس الأسلوب، ولكن المجال يتضمن أعمدةً فقط، وبفرض أننا نريد إضافة عمود واحد يكون الإجراء كالتالي:
Sub Insert() Range("A:A").Insert End Sub
هنا تُزاح البيانات نحو اليسار في النسخة الإنجليزية، وإلى اليمين في النسخة العربية.
خاتمة
توجد العديد من التعليمات الجزئية التي تُشكل اللَّبنة الأساسية لبناء التطبيقات، لذا يتوجب علينا فهم آلية عمل التطبيق، وتقسيمه لأجزاء ومهام صغيرة، ثم البحث عن التعليمات التي تنفذ هذه المهام، حيث تطرقنا لأهمها، وسنستوفي شرح ما يصادفنا من أوامر خلال المقالات القادمة أثناء صناعة البرمجيات الصغيرة.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.