Vraag & Antwoord

Programmeren

probleem met Keydown in een VBa applicatie

8 antwoorden
  • Hallo allemaal, Ik heb door een beetje afkijken en veel macro's opnemen (en daarna aanpassen) een VBA applicatie in elkaar gesleuteld. Daarin heb ik een formulier gemaakt met de gegevens van een regel. Aan dat formulier heb ik een veld toegevoegd om te zoeken naar een tekst in het werkblad. Ik wilde kunnen kiezen tussen vooruit en terug zoeken d.m.v. de toetsen Ctrl+F en CTRL+B. Daarvoor heb ik gebruik gemaakt van Private Sub tbzoek_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer). Het probleem is nu dat het meestal werkt, maar een enkele keer reageert hij plotseling niet meer op de Ctrl toetsen, terwijl de rest blijft werken. Wie weet wat de oorzaak kan zijn of weet een way-around? Ik wil de software aan anderen aanbieden, maar dit is een gebrek dat geen vertrouwen wekt.
  • keydown werkt alleen bij 'normale' toetsen. wil je alles vangen dan zul je wat dieper moeten graven en een 'keyboard hook' moeten afvangen. Ik kan zelf niet controleren of de code in de link helemaal correct is, maar het principe lijkt overeen te komen met code die ik in delphi heb toegepast. Link : http://vbnet.mvps.org/index.html?code/hooks/lowlevelkeyboardproc.htm Overigens moet je wel bedenken dat je programma zo heel snel in de categorie 'key-loggers' komt te vallen ...
  • Dank voor het meedenken. Volgens de Helpfile van Visual Basic is KeyDown juist bedoeld voor de bijzondere toetsen en combinaties. Het werkt ook meestal wel, maar een enkele keer niet. Verlaat ik het formulier en ga er opnieuw in, dan werkt het wel weer. De code in de link wordt niet geaccepteerd door VBA. Ik denk dat de syntax verschillen met Delphi te groot zijn.
  • De link zegt dat de code compatibel is met VB5 & 6. Welke versie heb jij dan ?
  • Ik heb Office 2000 en dat zou Visual Basic 6.0 moeten zijn.
  • Ah ... maar dat is niet 'echt' Visual Basic. Da's 'Visual Basic for Applications' ... en dat is het macro-taaltje van MS voor z'n Office-pakketten. Dan kan het kloppen dat het niet werkt. Het lijkt mij zeer onwaarschijnlijk dat je met die taal zo diep in het systeem kunt duiken ...
  • download Visual Studio 2008 ;) en ga Visual Basic .NET Leren
  • probeer dan liever de C#-variant. Daar ligt de toekomst ... VB had al eeuwen geleden verbannen moeten worden. ;)

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.