ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
42 visibility
موضوع: آفیس توسط:

لیا یک دکمه شناور با یک ماکرو اختصاص داده شده می خواهد. بنابراین، همانطور که او به چپ، راست، بالا یا پایین حرکت می کند، دکمه نزدیک سلولی که روی آن کار می کند، می ماند. لیا به این فکر می کند که آیا راهی برای افزودن چنین دکمه ای در اکسل وجود دارد یا خیر.

راهی برای انجام این کار بدون استفاده از ماکرو برای کنترل قرار دادن دکمه وجود ندارد. (این نباید مشکل بزرگی باشد، زیرا شما در حال حاضر از حداقل یک ماکرو در ورک بوک استفاده می کنید - همان چیزی که دکمه شناور فعال می کند.)

قبل از پرداختن به جزئیات نحوه انجام این کار، باید در نظر بگیرید که آیا واقعاً می خواهید از این روش استفاده کنید یا خیر. به عنوان مثال، می توانید ماکرو خود را به یک کلید میانبر یا به دکمه ای در نوار ابزار دسترسی سریع اختصاص دهید. هر یک از این رویکردها نیاز به تغییر مکان دائمی دکمه شناور را برطرف می کند.

اگر مطمئناً می خواهید مسیر دکمه را طی کنید، سپس ادامه دهید و دکمه روی صفحه خود را ایجاد کنید و آن را به ماکرو خود پیوند دهید. سپس، به سادگی یک کنترل کننده رویداد ایجاد کنید که هر بار که سلول انتخاب شده را تغییر می دهید، دکمه را تغییر مکان می دهد. به عنوان مثال، فرض کنید نام دکمه شما "دکمه 1" است. در این صورت می توانید از ماکرو زیر استفاده کنید:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With ActiveSheet.Shapes("Button 1")
        .Top = Target.Offset(1).Top
        .Left = Target.Offset(, 1).Left
    End With
End Sub

به یاد داشته باشید که این یک کنترل کننده رویداد است، بنابراین باید در پنجره کد صفحه کاری که برای آن اعمال می شود قرار داده شود. این باعث می شود که دکمه همیشه نزدیک گوشه سمت راست پایین سلول انتخاب شده جابجا شود.

همچنین لازم به ذکر است که به دو روش می توانید یک دکمه ماکرو ایجاد کنید – یا به عنوان یک کنترل Active X یا به عنوان یک کنترل قدیمی و غیر فعال X. اگر از دکمه های قدیمی استفاده می کنید، رویکرد فوق عالی عمل می کند. با این حال، اگر از یک کنترل Active X استفاده می کنید، می خواهید ماکرو را کمی تغییر دهید:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With ActiveSheet.OLEObjects("CommandButton1")
        .Top = Target.Offset(1).Top
        .Left = Target.Offset(, 1).Left
    End With
End Sub

توجه داشته باشید که تنها تغییر در شی مورد اشاره است. با وجود کنترل کننده رویداد مناسب، هر زمان که سلول انتخاب شده روی صفحه را تغییر می دهید، دکمه دقیقاً در سمت راست پایین سلول انتخاب شده تغییر مکان می دهد. بنابراین، این یک دکمه "شناور" واقعی نیست که همیشه در یک نقطه شناور باشد. این باید در موقعیت Leahs درست باشد، زیرا او می خواست که دکمه نزدیک سلولی باشد که در آن کار می کند (سلول انتخاب شده)، نه سلولی که مشاهده می کند (مانند زمانی که او با استفاده از نوارهای پیمایش انجام می دهد).

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

102 نفر آنلاین
0 عضو و 102 مهمان در سایت حاضرند
بازدید امروز: 13756
بازدید دیروز: 23384
بازدید کل: 15264654
...