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

219

    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. Suomalaisten pinna paloi - Ärsytys iskee uudesta TTK-juontajasta "Eihän tälle voi kun nauraa"

      Oliko Veronica Verho hyvä valinta TTK-juontajaksi? Uuden TTK-juontajan henkilöllisyyttä on arvailtu siitä asti, kun Va
      Suomalaiset julkkikset
      55
      1572
    2. Nainen, onko sinussa sitä aitoa feminiinisyyttä jäljellä

      Vai onko se jäänyt meikkien, korujen, hameiden ym. alle peittoon? Onko naisellisuutesi aitoa vai opetettua? Jos teet nai
      Ikävä
      321
      1045
    3. Kirjoita jotain

      Kivaa, hellää ja piristävää
      Ikävä
      131
      891
    4. Missäs se Miss Suomussalmi luuraa?

      Jokin aika sitten eräs myyjätär tituleerasi itsensä Miss Suomussalmeksi. Asiakas oli kuulemma Tokmannin kassalla todennu
      Suomussalmi
      12
      714
    5. Voisit nainen joskus vastata minulle

      Ja antaa jotain itsestäsi. Pientä tunnistetta ja juttua itsestäsi ja meistä. Kannustan.
      Ikävä
      63
      585
    6. Varmaan aika moni

      Haluaisi sinut enemmän kuin mielellään
      Ikävä
      39
      549
    7. Päälle hautaus?

      Hautauksissa puhutaan päällehautauksista jos vaikka mies on kuollut ensin ja vaimo 20 vuotta myöhemmin! Todellisuudessa
      Lieksa
      90
      543
    8. On tuota ikäeroa meillä kyllä aivan liian paljon

      Etsi samanikäistä kuin olet, niin minäkin.
      Ikävä
      45
      478
    9. Mitäpä luulet että tykkääkö

      kukaan kaivatustasi ?
      Ikävä
      43
      463
    10. Mies Naiselle pyydän...

      älä satuta minua.
      Ikävä
      44
      436
    Aihe