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

الضغط على شكل تلقائى برمجيا أو programmatically click on a shape


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

السلام عليكم و رحمة الله و بركاته  اخوانى و أحبابى فى أوفيسنا

اليوم باذن الله تعالى أعرض عليكم  تعليمة برمجية  صغيرة من سطر واحد

تمكنك هذه التعليمة من الضغط على أى شكل تلقائى بمعلومية اسمه .

مثال : اذا كان لديك شكلا تلقائيا اسمه Picture 1  كيف تضغط عليه برمجيا لا يدويا  

يمكن تنفيذ ذلك من خلال هذه التعليمة :


Sub clickonashape()
    Application.Run ActiveSheet.Shapes("Picture 1").OnAction   
End Sub

ممارسة الضغط على الشكل Picture 1  لن تشعر به الا اذا ربطت هذا الشكل بكود معين يؤكد لك أنه تم ضغطه

لنربط الشكل بالكود التالى مثلا :


Sub xxx()
    MsgBox "Hi Officna"
End Sub

جرب تشغيل الكود الأول

ستجد أن الكود الثانى اشتغل و ظهرت الرسالة  (  Hi Officna )     

 

تطبيق على الكود السابق : اضافة شكل تلقائى لتشغيل كود مباشرة دون ربطه يدويا

فى الكود التالى تم استثمار التعليمة السابقة و لكن بشكل مختلف :

يتم اضافة شكل تلقائي فى مكان محدد بالشيت و له بعض الخصائص  : من ضمن هذه الخصائص : أن يكون الشكل مربوطا بكود موجود مسبقا 


Sub addshpjoinedwithcode()
Dim shp As Shape
' اضافة الشكل فى المكان المحدد
Set shp = ActiveSheet.Shapes.AddShape(msoShapeSmileyFace, Left:=ThisWorkbook.Application.Range("E5").Left + 10, Top:=ThisWorkbook.Application.Range("E5").Top + 2, Width:=100, Height:=100)

' اضافة بعض الخصائص للشكل المضاف
With shp
  .Name = "SmileyFace"
  .Fill.ForeColor.RGB = RGB(255, 192, 0)        ' لون الشكل
  .Line.ForeColor.RGB = RGB(0, 176, 240)         ' لون الخط
  .Adjustments.Item(1) = -2              ' الشكل يبدو عابسا
  .OnAction = "xxx"          ' السطر الرئيسى : فى حالة ضغط الشكل يعمل الكود المحدد
End With

End Sub

يعنى باختصار  يلا  يظهر الشكل  تقدر  تدوس عليه ليعمل الكود  التالى :  xxx


Sub xxx()
Application.ScreenUpdating = False

With ActiveSheet.Shapes("SmileyFace")
     .Fill.ForeColor.RGB = RGB(146, 208, 80)  ' لون الشكل الجديد
     .Line.ForeColor.RGB = RGB(192, 0, 0)      ' لون الخط الجديد
     .Adjustments.Item(1) = 1                 ' الشكل يبدو ضاحكا
End With

Application.ScreenUpdating = True

MsgBox "Hi Officna"

End Sub

المرفقات :

programmatically add shape , join it with specific code.rar

programmatically click on a shape.rar

أتمنى أن يكون الموضوع خفيفا و مفيدا  لكم فى أكوادكم و برامجكم

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

تم تعديل بواسطه مختار حسين محمود
  • Like 5
رابط هذا التعليق
شارك

أستاذ نايف جرب  التحميل مرة أخرى

عذرا فقد حدث خطأ أثناء اضافة الموضوع

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

أخي الغالي مختار

صحيح بتغطس بس بتطلع لنا بجواهر ودرر يا أحلى غطاس ..

تصدق إمبارح بس لسه عارف المعلومة دي بتاعة Application.Run .. لما شفت الموضوع عجبني توارد الأفكار لأني كنت بفكر أعمل موضوع مشابه ، بس طبعاً مكانش هيكون متميز زي موضوعك

تقبل وافر تقديري واحترامي

 

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

أستاذى الغالى ياسر خليل

بارك الله فيك و جزاك كل خير  ... شوفت الغطس بيعمل ايه يا أحلى مستر

  أحاول أن أقدم لكم شيئا و لو ضئيلا  مما تقدمه لاخوانك أستاذنا الغالى

أخى الغالى ياسر العربى أولا  مبروووووووووووك على انضمامك لفريق الموقع  ومشكور على مرورك الجميل

 

 

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

السلام عليكم أستاذي الحبيب مختار 

متميز بكل ما تقدمه..مبهر ذلك الإبداع الذي توضبه كهدية رائعة وجذابة لمنتدى أوفيسنا ..جزاكم الله خيرا..

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

وعليكم السلام  ورحمة الله و بركاته    أستاذى الفاضل محمد

أشكرك من كل قلبى على دعمك وتشجيعك لى  كما أشكرك على مرورك الرائع  جزاكم الله خيرا ..

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

×
×
  • اضف...

Important Information