Uitleg
Nieuw document:
Bekijk bijlage MouseMove.xlsb
Verklarend plaatje:
Bij deze de beschrijving van wat ik heb gedaan. Tevens een nieuw document toegevoegd die hetzelfde doet maar waarin ik de verschillende objecten (4 stuks) van een vriendelijke naam heb voorzien.
Om in de ontwerpmodus te komen klik je in het menu op de tab Ontwikkelaars (zie pijl 1) en daarna op de knop Ontwerpmodus. Klik dan ergens in het werkblad om tevens een verborgen label zichtbaar te krijgen.
Om te beginnen heb ik 3 ActiveX Image objecten toegevoegd. In het plaatje zijn ze genummerd 2, 3 en 4
De namen die ik deze objecten heb gegeven staan erbij. imgUser en imgBlank heb ik van je grijze plaatje voorzien.
imgRood heeft het rode plaatje gekregen. Het object imgUser is het object dat de gebruiker in het document ziet.
De andere 2 image objecten hebben in de eigenschappen het attribuut Visible op False staan.
Daarnaast zie je bij nummer 5 een label object. Deze heb ik de naam lblExit gegeven.
Deze heeft in de eigenschappen de volgende attributen:
BackStyle: Transparant
BorderStyle: None
Caption: Leeg
Visible: False
De grootte ervan loopt van linksboven A1 tot rechtsonder AA40.
De werking:
De gebruiker ziet dus alleen het plaatje imgUser. Wanneer deze de muis er overheen beweegt treedt het MouseOver event van dat object in werking:
Code:
Private Sub imgUser_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
imgUser.Picture = imgRood.Picture
lblExit.Visible = True
End Sub
Zoals je ziet zorgt de code ervoor dat dit object dan het plaatje krijgt die in het object imgRood staat.
De gebruiker ziet dus nu het rode plaatje. Tevens wordt daar dat grote label zichtbaar gemaakt.
Dit label zie je vanwege de attributen met de eigenschappen zoals ze gezet zijn nog steeds niet, maar deze is voor Excel nu wel zichtbaar. Als je dus je muis nu beweegt treedt het MouseOver event van het label lblExit in werking:
Code:
Private Sub lblExit_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
imgUser.Picture = imgBlank.Picture
lblExit.Visible = False
End Sub
Deze zet dus het grijze plaatje uit het object imgBlank op het object imgUser en de gebruiker ziet weer een grijs plaatje.
Tevens wordt hier het object lblExit weer onzichtbaar voor Excel gemaakt waardoor het MouseOver event van imgUser weer zal werken als de muis er overheen bewogen wordt.
Dat is dus het hele principe.
Ik neem aan dat ik het klik event van het imgUser object niet uit hoef te leggen en ik hoop dat e.e.a. op deze manier duidelijk is zodat je er zelf mee aan de slag kan gaan.