الألوان
Code VBA Excel
to see ways of writing colors
كود فيجوال بيسك ابلكيشن اكسل لمعرفة طرق كتابة الألوان
الألوان وطرق كتابتها
تستخدم الألوان فى كثير من لغات البرمجة ولكن لها طرق مختلفة لكتابتها
يتم تحديد الألوان من خلط ثلاثة ألوان رئيسية هي : الاحمر و الاخضر والازرق التي تقوم بتشكيل اللون الذي نراه ،
حيث يتم تحديدها بالنسبة المئوية (0% حتى 100%) لكل لون من الالوان الثلاثة السابقة ومن ثم تجمع معا للحصول على اللون النهائي .
فعلي سبيل المثال: نقوم باضافة 100% من اللون الاحمر و100% من اللون الاخضر و 100% من اللون الازرق معا فنحصل على اللون الابيض .
دائما خلط الالوان معا على شاشة الحاسب ينتج لونا اقل دكانة (قتامة) لاننا لا نخلط مواداً هنا انما نقوم بخلط الضوء على شاشة الحاسب ، حيث انه ينتج اللون في الكتب (مثلا) عن ارتداد الضوء عن الصفحة المطبوعة ، في حين انه يتم في الحواسيب اصدار الضوء من الشاشة لذلك تبدو الالوان مختلفة قليلا في صفحات الانترنت .
مثال آخر : اذا اضفنا 60% من اللون الاحمر و 60% من اللون الاخضر و 60% من اللون الازرق معاً فنحصل على لون أقل بياضا اي اللون الرمادي لاننا نرسل كميات متماثلة من الالوان الثلاثة ولكن ليس بنفس المستوى من الضوء الى الشاشة .
مثال آخر : إذا أضفنا 80% من الاحمر 40% من الاخضر و 0% من الازرق سنحصل على اللون البرتقالي .
طبعا المقدمة السابقة هي فقط لفهم آلية خلط الضوء على شاشة العرض ، والغاية من ذكرها هي معرفة نظرية الالوان ، ولكن كيف نقوم بأرسال هذه القيم وبالنسب المطلوبة برمجيا … هذا ما سنتعرف عليه من خلال كود (شفرة) Code VBA Excel
يحتوي كل مصنف Microsoft Excel على لوح ألوان من 56 لونًا يمكنك تطبيقه على الخلايا والخطوط وشبكات الخطوط والكائنات الرسومية والتعبئات والخطوط في المخطط.
إذا كنت تستخدم شاشة ملونة ، يمكنك تخصيص ظل وشدة الألوان في لوحة الألوان لكل مصنف.
الصورة التالية توضح الـ 56 لون والتى يمكن انشاؤها من خلال ماكرو ، ينتج لك الماكرو عند تشغيله جدولا خاصا بهذه الأوان موضحا طريقة كتابتها بالـ Hex والتى يمكنك استخدامها فى اللغة الوصفية الـ HTML ، وأيضا بطريقة الـ أحمر أخضر أزرق (sRGB) ، والطريقتين يمكنك استخدامهما داخل شفرات الـ VBA
وإليك الشفرة المستخدمة التى تنتج لك هذه الألوان
'Permits any person to use this code provided that the source is mentioned
'https://elshriefacademy.blogspot.com
Sub MZM_colors56()
'57 colors, 0 to 56
Dim i As Long
Dim str0 As String, str As String
Cells(1, 1) = "Interior"
Cells(1, 2) = "Font"
Cells(1, 3) = "HTML"
Cells(1, 4) = "RED"
Cells(1, 5) = "GREEN"
Cells(1, 6) = "BLUE"
Cells(1, 7) = "COLOR"
For i = 0 To 56
Cells(i + 2, 1).Interior.ColorIndex = i
Cells(i + 2, 2).Font.ColorIndex = i
Cells(i + 2, 2).Value = "[Color " & i & "]"
str0 = Right("000000" & Hex(Cells(i + 2, 1).Interior.Color), 6)
'Excel shows nibbles in reverse order so make it as RGB
str = Right(str0, 2) & Mid(str0, 3, 2) & Left(str0, 2)
'generating 2 columns in the HTML table
Cells(i + 2, 3) = "#" & str
Cells(i + 2, 4).Formula = "=Hex2dec(""" & Right(str0, 2) & """)"
Cells(i + 2, 5).Formula = "=Hex2dec(""" & Mid(str0, 3, 2) & """)"
Cells(i + 2, 6).Formula = "=Hex2dec(""" & Left(str0, 2) & """)"
Cells(i + 2, 7) = "[Color " & i & "]"
Next i
End Sub
الخطوات
قم بفتح محرر الأكواد الـ (VBE) من خلال الضغط على Alt + F11 معا
قم بإدراج وحدة نمطية (Module)
نسخ ولصق الشفرة أعلاه
العودة الى الاكسل ثم ادرج زر أو شكل
ثم قم بربط الكود المسمى (MZM_colors56) بالزر من خلال الضغط كليك يمين على الزر أو الشكل اختر Assign Macro ثم اختر اسم الكود
قم بتجربة الشفرة