Millä koodinpätkällä saadaan nuolinäppäimet määriteltyä tekemään jotain tapahtumaa? Esim. NuoliYlös-painallus aiheuttaa tietyn tapahtuman jne. Normistihan nuolinäppäimillä Excell-taulukon soluvalinta liikkuu, eli normikäytös pois ja tilalle oma koodi.
Nuolinäppäinohjaus VBA:lla
Worra
5221
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 5
Vanhimmat
taulukon moduuliin...
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.OnKey "{RIGHT}", "Oikealle"
Application.OnKey "{LEFT}", "Vasemmalle"
Application.OnKey "{UP}", "Ylös"
Application.OnKey "{DOWN}", "Alas"
End Sub
tavalliseen moduuliin...(koodin pätkät resetoinnille ja käytöstä poistoon kanssa)
Option Explicit
Sub Oikealle()
MsgBox "oikealle"
End Sub
Sub VAsemmalle()
MsgBox "vasemmalle"
End Sub
Sub Ylös()
MsgBox "ylös"
End Sub
Sub Alas()
MsgBox "alas"
End Sub
Sub Poistaakäytöstä()
Application.OnKey "{RIGHT}", ""
Application.OnKey "{LEFT}", ""
Application.OnKey "{UP}", ""
Application.OnKey "{DOWN}", ""
End Sub
Sub Resetoi()
Application.OnKey "{RIGHT}"
Application.OnKey "{LEFT}"
Application.OnKey "{UP}"
Application.OnKey "{DOWN}"
End Sub
Keep EXCELing
@Kunde
Kiitos! Hetken sovellettuani koodia se toimii juuri kuten halusin. :)
Lisään vielä.. soluvalinta liikahtaa kerran ennenkuin omat nuoliohjaukset alkavat toimimaan, mutta kun resetointikoodiin lisää esim.
ActiveSheet.Range("A1").Select
niin nuolinäppäimet pelittävät heti ekasta painalluksesta omalla koodilla. "A1" paikalla voi tietty olla mikä muu solu tahansa.
Ettei lisäykset lopu ..
Soluvalinta täytyykin tehdä kahdesti, että nuolet pelittää heti, eli esim..
ActiveSheet.Range("B1").Select
ActiveSheet.Range("A1").Select
ei tartte kikkailla kun lisäät
ThisWorkbook moduuliin...
Sub Auto_Open()
Application.OnKey "{RIGHT}", "Oikealle"
Application.OnKey "{LEFT}", "Vasemmalle"
Application.OnKey "{UP}", "Ylös"
Application.OnKey "{DOWN}", "Alas"
End Sub