لون خلفية خلية Vba Excel. كيف يمكن العثور على لون خلفية الخلية برمجياً في Microsoft Office Excel في VBA؟ نموذج الألوان RGB

07.03.2019

ملء خلية باللون فبا اكسل. خلفية الخلية. Properties.Interior.Color و.Interior.ColorIndex. لون نموذج آر جي بي. لوحة قياسية مكونة من 56 لونًا. الثوابت المحددة مسبقا.

خاصية The.Interior.Color لكائن النطاق

بدءًا من Excel 2007، تتمثل الطريقة الأساسية لملء نطاق أو خلية فردية باللون (الطلاء أو الإضافة أو تغيير الخلفية) في استخدام خاصية اللون الداخلي لكائن النطاق عن طريق تعيين قيمة لون له كرقم عشري من 0 إلى 16777215 (إجمالي 16777216 لونًا).

تعبئة خلية بالألوان في VBA Excel

مثال الكود 1:

Sub ColorTest1() Range("A1").Interior.Color = 31569 Range("A4:D8").Interior.Color = 4569325 Range("C12:D17").Cells(4).Interior.Color = 568569 خلية (3، 6).اللون الداخلي = 12659 نهاية فرعية

ضع رمز المثال في ملفك وحدة البرمجياتواضغط على الزر الموجود على شريط الأدوات "Run Sub" أو على لوحة المفاتيح "F5"، ويجب أن يكون المؤشر داخل البرنامج قيد التشغيل. على الورقة النشطة خلايا اكسلوسيظهر النطاق المحدد في الكود بالألوان المناسبة.

هناك فارق بسيط واحد مثير للاهتمام:إذا تم تعيينه إلى الممتلكات .الداخلية.اللونالقيمة السالبة من -16777215 إلى -1، فإن اللون سيتوافق مع القيمة، يساوي المبلغ القيمة القصوىلوحة (16777215) والمخصصة قيمة سالبة. على سبيل المثال، سيكون ملء الخلايا الثلاث بعد تنفيذ التعليمة البرمجية التالية هو نفسه:

Sub ColorTest11() الخلايا(1, 1).اللون الداخلي = -12207890 الخلايا(2, 1).اللون الداخلي = 16777215 + (-12207890) الخلايا(3, 1).اللون الداخلي = 4569325 End Sub

تم اختباره في Excel 2016.

عرض رسائل حول قيم الألوان الرقمية

من المستحيل تذكر القيم الرقمية للألوان، لذلك غالبا ما يطرح السؤال حول كيفية معرفة القيمة الرقمية لخلفية الخلية. يعرض كود VBA Excel التالي رسائل حول القيم الرقمية للألوان المعينة مسبقًا.

مثال الكود 2:

Sub ColorTest2() MsgBox Range("A1").Interior.Color MsgBox Range("A4:D8").Interior.Color MsgBox Range("C12:D17").Cells(4).Interior.Color MsgBox Cells(3 ,6).الداخلية.لون نهاية الفرعية

بدلاً من عرض الرسائل، يمكنك التعيين القيم الرقميةالألوان إلى المتغيرات عن طريق إعلانها على أنها طويلة.

استخدام الثوابت المحددة مسبقا

يحتوي VBA Excel على ثوابت محددة مسبقًا لألوان تعبئة الخلايا شائعة الاستخدام:

يتم تعيين اللون لخلية بواسطة ثابت محدد مسبقًا في VBA Excel بنفس الطريقة كما هو الحال مع القيمة الرقمية:

مثال الكود 3:

النطاق ("A1").Interior.Color = vbGreen

نموذج الألوان RGB

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

يمكنك تحديد لون ومعرفة قيم RGB الخاصة به باستخدام لوحة Excel:

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

مثال الكود 4:

النطاق ("A1"). اللون الداخلي = RGB (100، 150، 200)

Property.Interior.ColorIndex لكائن النطاق

قبل ظهور Excel 2007، لم يكن هناك سوى لوحة محدودة لملء الخلايا بالخلفيات، تتكون من 56 لونًا، والتي بقيت حتى يومنا هذا. يتم تعيين فهرس لكل لون في هذه اللوحة من 1 إلى 56. يمكنك تعيين لون لخلية حسب الفهرس أو عرض رسالة حولها باستخدام الخاصية.Interior.ColorIndex:

مثال الكود 5:

النطاق("A1").Interior.ColorIndex = 8 MsgBox Range("A1").Interior.ColorIndex

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

مثال الكود 6:

Sub ColorIndex() Dim i As Byte For i = 1 إلى 56 خلية (i, 1).Interior.ColorIndex = i Next End Sub

ستتوافق أرقام صفوف الورقة النشطة من 1 إلى 56 مع فهرس الألوان، وسيتم ملء الخلية الموجودة في العمود الأول بخلفية تتوافق مع الفهرس.

يمكنك رؤية اللوحة القياسية النهائية المكونة من 56 لونًا.

الإجراء الفرعي النصي_1() "إنشاء في ذاكرة الوصول العشوائيالكمبيوتر "المنطقة المسماة - صفيف "myColor". "يتكون الصفيف من ثلاثة خطوطوعمودين. "إذا كنت بحاجة إلى البحث عن أكثر من ثلاث كلمات، فأنت بحاجة إلى تغيير "عدد الأسطر هنا: اجعله ليس من 1 إلى 3، ولكن على سبيل المثال من 1 إلى 4. "لا يلزم تغيير عدد الأعمدة. تعتيم myColor(1 إلى 3، 1 إلى 2) كسلسلة Dim rngSearch As Excel.Range Dim rngFind As Excel.Range، myAddress As String Dim i As Long "1. ضع "myColor" في المصفوفة الأولى نص العمود"، والتي سيتم البحث عنها في خلايا Excel. "في العمود الثاني، نضع رقم اللون الذي يجب "تطبيقه". يمكن معرفة رقم اللون على النحو التالي: "1) انتقل إلى Excel؛ "2) قم بتنشيط الخلية التي تريد معرفة لونها؛ "3) انتقل إلى VBA؛ "4) عرض - النافذة الفورية. سيتم فتح نافذة. في هذه النافذة، الصق "هذا الرمز" واضغط على مفتاح "Enter" وسيتم الحصول على رقم اللون "print activecell.Interior.Color" 5) يوجد أيضًا "ColorIndex". ألوان معينةأعطي " أرقام معينة. في تعليمات VBA (Excel 2010)، إذا قمت "بإدراج النص "ColorIndex" في الزاوية اليمنى العليا والضغط على مفتاح "Enter"، ستظهر قائمة بالمقالات. "اختر مقالة "خاصية ColorIndex". فهي تعرض "أي لون تم تعيينه وأي رقم. "لقد وضعت الأرقام بين علامتي اقتباس لأنني أعطيت المصفوفة نوع البيانات "نص". myColor(1, 1) = "GR": myColor(1, 2) = "5287936" myColor(2, 1) = "RD" : myColor(2, 2) = "255" myColor(3, 1) = "Y": myColor(3, 2) = "65535" "2. لتسهيل كتابة التعليمات البرمجية، نعطي اسم "rngSearch" لنطاق الخلايا حيث "تحتاج إلى الطلاء فوق الخلايا". ومن خلال هذا الاسم سنصل إلى "نطاق الخلايا المطلوب". Set rngSearch = ActiveSheet.Range("A1:D25") "باستخدام حلقة مع "i"، ننتقل عبر جميع الصفوف في مصفوفة "myColor". "UBound(myColor, 1) هو رقم سريالصف الأخير في مصفوفة "myColor". For i = 1 To UBound(myColor, 1) Step 1 "3. من الأسرع البحث بدلاً من عرض كل خلية. "LookAt:=xlWhole - يتم البحث عن تطابق كامل. تعيين rngFind = rngSearch.Find(What:=myColor(i, 1)، LookIn:=xlValues، _ LookAt:=xlWhole، SearchOrder:=xlByRows، SearchDirection:=xlNext، _ MatchCase:=False، SearchFormat:=False) " إذا تم العثور عليه، فسيتم تسمية الخلية التي تحتوي على النص الذي تم العثور عليه بالاسم "rngFind". ومن خلال هذا الاسم يمكنك الوصول إلى الخلية. "إذا لم يتم العثور عليه، فسيحتوي المتغير "rngFind" على النص "لا شيء". إذا لم يكن rngFind لا شيء، فعندئذٍ "4. إذا لم يتم العثور عليه، انتقل إلى البحث عن النص التالي. GoTo tag End إذا "تم العثور عليه".5. نتذكر عنوان الزنزانة التي كانت فيها الزنزانة الأولى مرات وجدت، "لإيقاف البحث بعد ذلك. myAddress = rngFind.Address "باستخدام دورة "Do ... Loop"، نواصل البحث. افعل "6. قم بتلوين الخلية باللون المطلوب. "نحتوي على الرقم كنص. باستخدام "CLng" "نقوم بعمل رقم رقم. rngFind.Interior.Color = CLng(myColor(i, 2)) "7. نواصل البحث. تعيين rngFind = rngSearch.FindNext(rngFind) حلقة أثناء rngFind.Address<>علامة myAddress: التالي i "8. رسالة تفيد بأن الرمز قد اكتمل. MsgBox "اكتمل الرمز!"، vbInformation End Sub

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

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

لنبدأ بشيء بسيط. على شريط الأدوات الرئيسي للشريط توجد لوحة تنسيق الخلايا:

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

الآن دعونا نضبط تنسيق الخلية باستخدام قائمة السياقلماذا انقر انقر على اليمينالماوس على الخلية وحدد "تنسيق الخلايا" في القائمة التي تفتح:

في علامة التبويب تعبئة، يمكنك اختيار لون الخلفية ونمطها.

دعونا نفكر في موقف مختلف قليلاً. لنفترض أنك تريد نسخ لون الخلية (وتنسيقها) من لون موجود وتطبيقه على خلاياك. دعنا نستخدم الزر الموجود على اللوحة الرئيسية "التنسيق حسب العينة" ("الخفق"):

وبالتالي، من أجل نسخ التنسيق، نحتاج إلى تحديد الخلية التي نهتم بها، والنقر على "الشارب" والنقر على الخلية التي نريد تعيين تنسيقها.

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

اضبط لون الخلية (A1 باللون الأصفر):

نطاق Sub Macro2 () ("A1"). حدد باستخدام التحديد. اللون الداخلي = 65535 نهاية مع End Sub

نسخ تنسيق الخلية (يتم نسخ تنسيق A1 إلى A3):

Sub Macro1() Range("A1").Select Selection.Copy Range("A3").Select Selection.PasteSpecial Application.CutCopyMode = False End Sub

الآن، من خلال دمج التنسيق مع العوامل الشرطية، يمكنك كتابة العمليات الحسابية (على سبيل المثال، الجمع) بناءً على حالة اللون.

سنكون ممتنين إذا قمت بالنقر فوق +1 و/أو انا يعجبنيفي أسفل هذه المقالة أو شاركها مع أصدقائك باستخدام الأزرار أدناه.