قم بتعيين مؤشر "تحديد الكائنات" برمجياً في Excel

StackOverflow https://stackoverflow.com/questions/867758

  •  22-08-2019
  •  | 
  •  

سؤال

أجد صعوبة في معرفة كيفية تمكين نوع المؤشر "تحديد الكائنات" برمجيًا.لقد تحققت من متصفح الكائنات وتوقعت العثور على خاصية مثل Application.CursorType أو Application.DrawingMode.

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

يحرر: كان يجب أن أوضح أنني لا أتحدث عن مظهر المؤشر الذي يمكن ضبطه من خلاله Application.Cursor.بدلاً من ذلك، أريد ضبط المؤشر على نفس الوضع الذي يمكن ضبطه عبر واجهة المستخدم الرسومية عن طريق النقر على أيقونة "تحديد الكائنات" على شريط أدوات الرسم.هذا هو المؤشر الذي يسمح فقط بتحديد الأشكال ويتجاهل الخلايا والنص وشريط الصيغة.

في الواقع، لم أكن أعرف أبدًا الاسم الصحيح لوضع المؤشر هذا حتى راجعت تلميح الأداة لكتابة هذا التحديث، ربما سيساعدني ذلك.

هل كانت مفيدة؟

المحلول

لا أفهم تمامًا سبب رغبتك في القيام بذلك، ولكن يمكنك تبديل وضع الرسم "تحديد الكائنات" برمجيًا عن طريق تنفيذ عنصر التحكم CommandBar المدمج:

Call CommandBars("Drawing").Controls("Select Objects").Execute

ويمكنك تحديد الوضع الحالي عن طريق التحقق من حالته:

If CommandBars("Drawing").Controls("Select Objects").State Then
  Call Debug.Print("Select Object mode is on")
End If

حظ سعيد!

نصائح أخرى

هل هذا وصلة يساعد؟

وهنا ملخص:

من خلال التطبيق، لديك أربعة خيارات:

  • xlDefault
  • انتظر
  • xlBeam
  • xlNorthwestArrow

أنت تسميها مثل:

Application.Cursor = xlDefault

على النماذج، لديك المزيد من الخيارات.انظر المقال للمزيد.

لا أعرف ماذا تقصد بـ "وضع الرسم".ومع ذلك، إذا كنت تريد تغيير مظهر مؤشر الماوس، فإن الخاصية التي تبحث عنها هي Application.Cursor

يمكنك ضبطها على واحدة من أربع قيم محددة مسبقًا: xlWait, xlNorthwestArrow, xlIBeam و xlDefault.

إذا كنت تريد عرض مؤشرات أخرى، قم بإلقاء نظرة هذا المقال حول كيفية عرض مؤشر مخصص في Access.نظرًا لأنه يستخدم WinAPI، يجب أن يعمل الحل بشكل متساوٍ في Excel.

يحرر:

ردا على تعديلك:لا أعتقد أنه من الممكن أن تفعل ما تريد.لا يلتقطه مسجل الماكرو لأنه لا يوجد أمر VBA يمكنه القيام بذلك.اعتمادًا على ما تحاول تحقيقه من خلال التبديل إلى وضع التصميم، قد تكون هناك طرق أخرى.

إذا كنت تريد منع المستخدم من تغيير البيانات الموجودة في المصنف الخاص بك، فيمكنك إخفاء نافذة Excel الكاملة باستخدام Application.Visible ملكية.

إذا كنت تريد منع المستخدم من تحديد أو تغيير أي شيء، مع الاستمرار في عرض البيانات، فقم بإلقاء نظرة على ActiveSheet.Protect أو ActiveWorkbook.Protect, ، متوفر تحت الأدوات - الحماية.

إذا كنت تريد نقل بعض عناصر التحكم أو تغيير حجمها في المصنف الخاص بك، فيمكنك القيام بذلك برمجيًا عن طريق تغيير Left, Top, Height و Width الخاصة بعنصر التحكم، فلن تحتاج إلى التبديل إلى وضع التصميم لتتمكن من القيام بذلك من الماكرو الخاص بك.

لقد "تأخرت قليلاً عن الحفلة" في هذا الشأن ولكن إليك الإجابة على "لماذا يريد أن يفعل هذا" بالإضافة إلى "ما يريد أن يفعله".

'Turn ON 'Select Objects' option during initial display. While ON, cell input is prevented.
If CommandBars("Drawing").Controls("Select Objects").State = False Then
    CommandBars("Drawing").Controls("Select Objects").Execute
End If

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

هتاف ، لورانس

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top