VBA Strg+a oder AltGR für Makroaufruf (engl.) belegen

spinnifex
Goto Top
Moin allerseits!

Um die deutschen Umlaute in einer UserForm/Textbox per Tastenkombi zu nutzen, habe ich mir ein Makro geschrieben, das die Sonderzeichen auch auf englischen Tastaturen zugänglich macht. Dabei nutze ich Textbox.SelStart, um die Position des Cursors zu lokalisieren und dort dann mit den Kombis Strg+a/A, o/O, u/U und s unsere vier lokalen Hieroglyphen mit leicht merkbaren Shortcuts anzubieten. Für äÄöÖüÜ & ß klappt das bestens.

Strg+a ist in Windows mit Alles markieren belegt und reagiert in der Textbox entsprechend, führt dann das Makro dennoch aus. Nur wird durch die Markierung nun die SelStart mit 0 überschrieben und das ä/Ä erscheint nicht im sondern vor dem Text. Kann man das irgendwie für die Laufzeit der Userform unterbinden?

Lieber als die Kombination Strg+... hätte ich AltGr + ... verwendet. Nachdem das System, auf dem der Code laufen soll, aber ein englisches ist, das nach meinen Suchereien kein AltGr kennt, musste ich auf Strg + .. ausweichen. Oder gibt es vielleicht doch einen Trick ein AltGr auf einem englischen System zu simulieren?

Beide Lösungen wären toll. Hat jemand eine zielführende Idee?

VIelen Dank!

Spinnifex

Content-Key: 2778911890

Url: https://administrator.de/contentid/2778911890

Ausgedruckt am: 17.05.2022 um 22:05 Uhr

Mitglied: rubberman
rubberman 14.05.2022 um 13:54:36 Uhr
Goto Top
Moin.

[AltGr] und [Strg]+[Alt] verhalten sich üblicherweise gleich. Probier mal ob sich das unter VBA so widerspiegelt.

Steffen
Mitglied: spinnifex
Lösung spinnifex 14.05.2022 um 14:35:45 Uhr
Goto Top
Ein bisschen mehr Grips eingesetzt, kann man sogar selber drauf kommen: ALTGr = STRG +ALT. Dann muss man nur noch beide KeyDown-Events inklusive Shift (off = 6, on = 7) abfangen, und es klappt

Schönen Tach noch!
Mitglied: spinnifex
spinnifex 14.05.2022 um 17:23:00 Uhr
Goto Top
Moin Rubberman,

Danke für Deinen Hinweis. Da haben sich meine Versuche mit Deinem Kommentar überschnitten. Probiert und gelernt:
ob sich das unter VBA so widerspiegelt.
Yep!

Schönes Wochenende!