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

218

    Vastaukset 5

    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. Miksi et halua kaivattusi

      kanssa suhteeseen? Onko jokin syy vaikka rakastat häntä?
      Ikävä
      145
      1404
    2. 74
      1254
    3. Carunan hinnat

      Yks proffa vauuttaa, ettei Caruna voi noin vain nostaa hintoja koska suomen laki kieltää, toinen proffa sanoo että Carun
      Maailman menoa
      105
      1016
    4. Mikä sun kaivatussa on se miksi ihastuit

      ja ikävöit? Eli se jokin asia, mikä aiheutti tunteen, että tuossa on sitä jotain? Meinasitko tehdä asialle jotain vai ka
      Ikävä
      50
      945
    5. Koetko vielä et

      Olen elämäsi rakkaus?
      Ikävä
      78
      832
    6. Joko uskallat.

      Huomenna nähdään.
      Ikävä
      45
      811
    7. Kunnan päätie ja sen lähialueet

      Arvon hyrynsalmelaiset. Tätä palstaa on näin Ukkohallan mökkiläisena ihan viihteellistä lukea. Milloin teitä ahdistaa la
      Hyrynsalmi
      40
      808
    8. Olen tumma ja tulinen

      Ja vielä suora - en ollut sinua varten. n to m
      Ikävä
      115
      678
    9. Oletko tullut siihen

      Tulokseen ettet saa minua
      Ikävä
      67
      673
    10. Mitä kysyisit

      Mihin haluaisit vastauksen häneltä eli mitä kysyisit?
      Ikävä
      77
      663
    Aihe