اذهب الي المحتوي
أوفيسنا

اختيار الوانك المفضلة بواسطة VBA برمجياً


SEMO.Pa3x

الردود الموصى بها

السلام عليكم ورحمة الله وبركاته..

في الوضع الطبيعي الاكسس يعطينا فقط مجموعة الوان عند تنسيقها في الكود

 

Constant Value Description
vbBlack 0x0 Black
vbRed 0xFF Red
vbGreen 0xFF00 Green
vbYellow 0xFFFF Yellow
vbBlue 0xFF0000 Blue
vbMagenta 0xFF00FF Magenta
vbCyan 0xFFFF00 Cyan
vbWhite 0xFFFFFF White

 

ولكن كثيراً ما نريد ان نقوم بإختيار الواناً غير التي موجودة في الاعلى مثلا اللون الفسفسوري غير موجود في القائمة.

قمنا باخذ قيمة اللون الفسفوري من احد برامج تعديل الصور وليكن مثلا الفوتوشوب

لكن احيانا تواجهنا مشاكل ورسائل مزعجة من الاكسس عند وضع الالوان عن طريق VBA

مثلا انا دائما ماكانت تصادفني رسالة مزعجة Expected Array عندما اقوم بوضع اللون بالصورة الاتية:

 

txt_name.BackColor = RGB(20,30,60)

تظهرلي هذه الرسالة:

 

p0oNUAX.png

 

فكرت في تحويل اللون من HEX الى OLE ، وقد تم تغيير اللون بنجاح وبدون اي رسائل خطأ

 

Public Function HEX2OLE(ByVal hexValue As String) As Long

    Dim R, G, B As Long

    If Left(hexValue, 1) = "#" Then hexValue = Replace(hexValue, "#", "")
 
    R = CByte("&H" & Left(hexValue, 2))
    G = CByte("&H" & Mid(hexValue, 3, 2))
    B = CByte("&H" & Mid(hexValue, 5, 2))
 
    HEX2OLE = CLng(R + (G * 256) + (B * 65536))
    
End Function

 

بالتوفيق للجميع.

HEX_2_OLE.accdb

  • Like 4
  • Thanks 1
رابط هذا التعليق
شارك

شكرا لك أستاذنا @SEMO.Pa3x على ماتقدمة لنا

قمت بتعديل بسيط حتى يكون اللون ثابت عند تحميل النموذج .. فتم بنجاح

Me.SEMO.BackColor = HEX2OLE("#00838F")

 

بارك الله فيك .. وجزاك الله خيرا

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
×
×
  • اضف...

Important Information