ادی یک تصویر گرافیکی کوچک به یک کاربرگ اضافه کرده و یک ماکرو به تصویر گره زده است. وقتی روی تصویر کلیک می شود، ماکرو اجرا می شود. ادی تعجب می کند که آیا می توان یک برچسب یا نظر به تصویر اضافه کرد تا زمانی که کاربر نشانگر ماوس را روی تصویر قرار می دهد، برچسب/نظر ظاهر شود و به کاربر بگوید که ماکرو چه کاری انجام می دهد.
ممکن است در ابتدا فکر کنید که میتوانید یک ScreenTip به تصویر اضافه کنید، اما این کار تنها در صورتی انجام میشود که یک لینک به آن اختصاص دهید. افزودن هایپرلینک (و ScreenTip) به اندازه کافی آسان است، اما متوجه خواهید شد که هایپرلینک بر ماکرو اولویت دارد و از اجرای آن جلوگیری می کند.
این بدان معنی است که شما باید به دنبال راه های دیگری برای مقابله با مشکل باشید. متأسفانه هیچ راه آسانی برای ایجاد این نوع ScreenTip وجود ندارد، اما چند راه وجود دارد که می توانید به این کار نزدیک شوید. یکی از کارهایی که می توانید انجام دهید این است که یک دکمه فرمان را به کاربرگ اضافه کنید و سپس تصویر را به دکمه اختصاص دهید. سپس کل تصویر به عنوان یک دکمه عمل می کند. هنگامی که روی دکمه کلیک می کنید، کنترل کننده رویداد CommandButton1_Click را اجرا می کند (با فرض اینکه از نام پیش فرض دکمه فرمان استفاده می کنید).
در مرحله بعد باید یک کادر متنی ایجاد کنید که تقریباً شبیه به ScreenTip باشد. در واقع جعبه متن عرض جغرافیایی بیشتری نسبت به یک ScreenTip معمولی به شما می دهد، زیرا می تواند به هر شکلی که شما بخواهید قالب بندی شود، و می تواند حاوی هر متن توضیحی مورد نظر شما باشد. تنها کاری که باید انجام دهید این است که مطمئن شوید که جعبه متن یک نام منحصر به فرد مانند "MyShape" داده شده است. (با انتخاب آن و سپس تغییر نام در کادر Name در گوشه سمت چپ بالای ناحیه کاربرگ، نامی را به کادر متن اختصاص می دهید.)
در حالی که دکمه فرمان و جعبه متن در جای خود قرار دارند، روی دکمه فرمان کلیک راست کرده و پنجره کد دکمه فرمان را نمایش دهید. سپس کد زیر را به پنجره کد اضافه کنید:
Private Sub CommandButton1_Click()
Call your regular macro here
Hide_Shape
End Sub
Private Sub CommandButton1_MouseMove( _
ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
Display_and_Hide_Shape
End Sub
این کنترل کننده رویداد Click است که برای فراخوانی کد ماکرو معمولی خود باید آن را تغییر دهید. کد MouseMove زمانی اجرا می شود که موس روی دکمه فرمان حرکت می کند. در این حالت، کد کادر متنی را که ایجاد کرده اید نمایش می دهد.
بعد، ماکروهای زیر را در یک ماژول ماکرو استاندارد قرار دهید. این دو ماکرو شکل کادر متنی را که ایجاد کرده اید نشان می دهند و پنهان می کنند. توجه داشته باشید که اولین ماکرو از روش OnTime برای مخفی کردن خودکار شکل دو ثانیه پس از اولین نمایش استفاده می کند.
Sub Display_and_Hide_Shape()
ActiveSheet.Shapes("MyShape").Visible = True
adjust time
Application.OnTime Now + TimeValue("00:00:02"), "Hide_Shape"
End Sub
Sub Hide_Shape()
ActiveSheet.Shapes("MyShape").Visible = False
End Sub
در حالی که همه ماکروها در جای خود هستند، فقط نشانگر ماوس را روی تصویر دکمه فرمان حرکت دهید. کادر متن باید دو ثانیه بعد ناپدید شود، فقط زمانی که دوباره ماوس را روی تصویر ببرید دوباره ظاهر شود.
روش دیگر این است که تصویر را در یک شی نمودار جاسازی کنید، تصویر را با استفاده از هر متنی که می خواهید در ScreenTip ظاهر شود نامگذاری کنید و سپس ماکرو را به شی نمودار اختصاص دهید. این ممکن است کمی گیج کننده به نظر برسد، اما انجام آن با دنبال کردن این مراحل کلی نسبتا آسان است:
- یک شی نمودار خالی ایجاد کنید. شما می توانید این کار را به سادگی با انتخاب یک سلول خالی، انتخاب درج نمودار و بلافاصله کلیک بر روی دکمه Finish انجام دهید. نمودار نباید حاوی چیزی باشد، به همین دلیل است که یک "شیء نمودار خالی" است.
- سپس تصویر را به شی نمودار اضافه کنید. فقط تصویر را در کلیپ بورد کپی کنید و سپس شی نمودار خالی را انتخاب کنید (شما آن را در مرحله 1 ایجاد کردید) و محتویات کلیپ بورد را جایگذاری کنید.
- اندازه شی نمودار و تصویر درون شی نمودار را طوری تنظیم کنید که نشان دهنده نیاز شما باشد.
- تصویر درون شی نمودار را انتخاب کنید، و سپس با تغییر هر چیزی که در کادر Name در گوشه سمت چپ بالای ناحیه کاربرگ است، نامی به تصویر بدهید. این نام باید متنی باشد که می خواهید به عنوان ScreenTip شما نمایش داده شود.
- اکنون ماکرو خود را با کلیک راست روی شی نمودار و انتخاب Assign Macro به شی نمودار (نه تصویر درون شی نمودار) اختصاص دهید.
خودشه. حالا وقتی نشانگر ماوس را روی تصویر میبرید، نام تصویر به صورت ScreenTip ظاهر میشود و اگر کلیک کنید، ماکرو اختصاص داده شده به شی نمودار اجرا میشود.