Nuolinäppäinohjaus VBA:lla

Worra

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.

5

203

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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

      • Worra

        Kiitos! Hetken sovellettuani koodia se toimii juuri kuten halusin. :)


      • Worra
        Worra kirjoitti:

        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.


    • Worra

      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

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Muovikassikartelli

      Kauppaketjut ovat yhdessä sopineet muovikassin yksikköhinnaksi 59 senttiä. Milloin viranomaiset puuttuvat tähän kartell
      Talousrikokset
      34
      2156
    2. Aidon persun tunnistaa Marinin palvonnasta

      Oli kyse sitten Halla-ahosta tai Putinista. Ensimmäisenä aidolle persulle tulee mieleen Marin.
      Maailman menoa
      49
      1747
    3. Hallintooikeus..

      "Asemakaavapäätös pysyy voimassa.Poikkeamista ja rakentamista koskevat luvat hylättiin" kertoo Pyhäjärven Sanomat netti.
      Pyhäjärvi
      115
      1571
    4. Olen rakastunut

      varattuun joka ei eroa. Miten tunteista eroon? Tämä ei ole tavanomaista. On elämäni suuri rakkaus.
      Ikävä
      104
      1296
    5. Jos se joskus oli molemminpuolista

      niin hyvin me molemmat onnistuttiin pitämään toinen epätietoisena.
      Ikävä
      76
      1008
    6. Teit yllättävän siirron

      Olet tähän saakka ollut tietyllä tapaa varovainen. Voi kai sanoa, että olemme kunnioittaneet toistemme rajoja. Tiedän,
      Ikävä
      48
      978
    7. Mikä on kaivattusi

      ammatti?
      Ikävä
      59
      905
    8. Laita nyt se viesti

      Tiedän että haluat tavata. Kirjoitat, pyyhit, kirjoitat... Lähetä se viesti 😗
      Ikävä
      54
      817
    9. Kaipaatko nainen

      Semmoista tosi hankalaa ja arkaa miestä? Pitäisitkö hänet aina omanasi jos saisit hänet? Miten huomioisit hänen herkkyyd
      Ikävä
      101
      783
    10. Nähdäänkö me ensi

      Viikolla jossain?
      Ikävä
      60
      758
    Aihe