Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Taste zeitweilig deaktivieren

Forumthread: Taste zeitweilig deaktivieren

Taste zeitweilig deaktivieren
21.11.2003 22:54:10
RomanoWirth
VBA nicht ganz so gut...

Hallo Leute,

ich hab die Frage schon vor ein paar Tagen im spotlight VB- Forum
gestellt, aber keine zur Lösung führende Antwort erhalten.

Hoffe, das wird jetzt nicht als crossposting gewertet.

Wie kann ich während mein Programm läuft, die Windows- Taste
(zwischen Strg und Alt bzw. rechts neben Alt Gr)
deaktivieren. Mit anderen Worten, ich möchte erreichen, dass das
Startmenü nicht aufgeklappt werden kann.

Gruß und Dank schon mal

Romano
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Taste zeitweilig deaktivieren
21.11.2003 23:19:21
Josef Ehrensberger
Hallo Romano,

also ich glaube das du von Excel bzw. VBA keinen zugriff
auf die Windowstaste hast, aber vieleicht hilft dir dieser link.


http://www.freeware.de/software/Programm_KeyMapper_13053.html

Gruß Sepp
Anzeige
Taste zeitweilig deaktivieren noch offen
21.11.2003 23:30:01
RomanoWirth
Hallo,

danke, aber ich muss das in mein Projekt einbinden können,
sollte also irgendwie mittels VBA gehen.

Gruß Romano
AW: Taste zeitweilig deaktivieren
21.11.2003 23:40:19
DieterB
Hallo, ich hoffe das hilft ein wenig (MS-Excel-Hilfe)


Beispiel zur KeyboardShortcutTips-Eigenschaft

In diesem Beispiel werden die Hilfeinformationen des Office-Assistenten über Tastenkombinationen aktiviert.

Assistant.KeyboardShortcutTips = True


OnKey-Methode


Führt die angegebene Prozedur aus, wenn eine bestimmte Taste oder Tastenkombination gedrückt wird.

Syntax

Ausdruck.OnKey(Key, Procedure)

Ausdruck Erforderlich. Ein Ausdruck, der ein Application-Objekt zurückgibt.

Key String erforderlich. Eine Zeichenfolge, die die zu drückende Taste angibt.

Procedure Variant optional. Eine Zeichenfolge, die den Namen der auszuführenden Prozedur festlegt. Falls Procedure eine leere Zeichenfolge ("") ist, hat das Drücken von Key keine Wirkung. Diese Form von OnKey deaktiviert die normale Bedeutung von Tastenanschlägen in Microsoft Excel. Ist Procedure nicht angegeben, erhält Key ihre ursprüngliche Bedeutung in Microsoft Excel zurück, und alle bisher mit der OnKey -Methode vorgenommenen Tastenzuweisungen werden gelöscht.

Anmerkungen

Das Argument Key kann eine einzelne Taste angeben, kombiniert mit den Tasten ALT, STRG oder UMSCHALT oder jede Kombination dieser Tasten. Jede Taste wird durch ein oder mehrere Zeichen dargestellt, wie z. B. "a" für die Taste a, oder "{EINGABE}" für die EINGABETASTE.

Verwenden Sie für Zeichen, die beim Drücken einer Taste nicht angezeigt werden (z. B. EINGABE oder TAB), die Codes aus der folgenden Tabelle. Jeder Code in der Tabelle steht für eine Taste auf der Tastatur.

TASTE Code
RÜCKTASTE {BACKSPACE} oder {BS}
PAUSE {BREAK}
FESTSTELLTASTE {CAPSLOCK}
ENTF {CLEAR}
ENTF {DELETE} oder {DEL}
NACH-UNTEN-TASTE {DOWN}
ENDE {END}
EINGABETASTE (Zehnertastatur) {ENTER}
EINGABETASTE ~ (Tilde)
ESC {ESCAPE} oder {ESC}
HILFE {HELP}
POS1 {HOME}
EINFG {INSERT}
NACH-LINKS-TASTE {LEFT}
NUM {NUMLOCK}
BILD-AB {PGDN}
BILD-AUF {PGUP}
EINGABETASTE {RETURN}
NACH-RECHTS-TASTE {RIGHT}
ROLLEN {SCROLLOCK}
TAB {TAB}
NACH-OBEN-TASTE {UP}
F1 bis F15 {F1} bis {F15}


Sie können jede beliebige Tastenkombination mit UMSCHALT, STRG und ALT angeben. Kombinieren Sie eine Taste mit einer oder mehreren anderen Tasten entsprechend der folgenden Tabelle.

Kombinieren mit Vorangestelltes Zeichen
UMSCHALT + (Pluszeichen)
STRG ^ (Caret-Zeichen)
ALT % (Prozentzeichen)


Um einem der Sonderzeichen (+,^ ,%, usw.) eine Prozedur zuzuweisen, schließen Sie das Zeichen in geschweifte Klammern ein. Genauere Informationen finden Sie im zugehörigen Beispiel.


KeyPress-Ereignis


Tritt ein, wenn der Benutzer eine ANSI-Taste drückt.

Syntax

Private Sub object_KeyPress( ByVal KeyANSI As MSForms.ReturnInteger)

Die Syntax für das KeyPress-Ereignis besteht aus folgenden Teilen:

Teil Beschreibung
object Erforderlich. Ein gültiges Objekt.
KeyANSI Erforderlich. Ein Wert einer Ganzzahl, der einen numerischen Standard-ANSI-Tasten-Code darstellt.


Hinweise

Das KeyPress-Ereignis tritt ein, wenn der Benutzer eine Taste drückt, die auf einem ausgeführten Formular ein darstellbares Zeichen (ein ANSI-Zeichen) ergibt, während das Formular oder ein Steuerelement in diesem Formular den Fokus hat. Dieses Ereignis kann vor oder nach dem Loslassen der Taste eintreten. Dieses Ereignis tritt auch ein, wenn Sie einen ANSI-Tastenanschlag an ein Formular oder ein Steuerelement senden und dazu entweder die SendKeys-Aktion in einem Makro oder die SendKeys-Anweisung in Visual Basic verwenden.

Ein KeyPress-Ereignis kann eintreten, wenn eine der folgenden Tasten gedrückt werden:

Ein beliebiges darstellbares Zeichen.


STRG in Kombination mit einem Zeichen aus dem Standardalphabet.


STRG in Kombination mit einem beliebigen Sonderzeichen.


RÜCKTASTE.


ESC.
Ein KeyPress-Ereignis tritt unter den folgenden Bedingungen nicht ein:

Drücken der TAB-TASTE.


Drücken der EINGABETASTE.


Drücken einer PFEILTASTE.


Wenn sich der Fokus aufgrund eines Tastenanschlags von einem Steuerelement auf einen anderen verschiebt.
Anmerkung Im Gegensatz zur RÜCKTASTE ist ENTF kein Teil des ANSI-Zeichensatzes. Das Löschen eines Zeichens in einem Steuerelement mit der RÜCKTASTE löst somit ein KeyPress-Ereignis aus, das Löschen eines Zeichens mit ENTF jedoch nicht.

Wenn ein Benutzer eine Taste gedrückt hält, die einen ANSI-Tasten-Code erzeugt, wiederholen sich die Ereignisse KeyDown und KeyPress im gegenseitigen Wechsel. Wenn der Benutzer die Taste loslässt, tritt das KeyUp-Ereignis ein. Das Formular oder das Steuerelement mit dem Fokus erhält alle Tastenanschläge. Ein Formular kann den Fokus nur dann haben, wenn es keine Steuerelemente enthält oder wenn alle sichtbaren Steuerelemente deaktiviert sind.

Als Standardaktion des KeyPress-Ereignisses wird der Ereignis-Code verarbeitet, der der gedrückten Taste entspricht. KeyANSI bestimmt das ANSI-Zeichen, das der gedrückten Taste oder Tastenkombination entspricht. Das KeyPress-Ereignis interpretiert die Groß-/Kleinschreibung jedes Zeichens als separate Tastencodes und somit als zwei separate Zeichen.

Um auf den aktuellen Zustand der Tastatur zu reagieren oder Tastenanschläge zu verarbeiten, die nicht vom KeyPress-Ereignis erkannt werden, wie z.B. Funktionstasten, Richtungstasten und beliebige Kombinationen dieser mit den Zustandstasten (ALT, UMSCHALT oder STRG), verwenden Sie die Ereignisprozeduren KeyDown und KeyUp.

Die Reihenfolge der tastaturbezogenen Ereignisse lautet wie folgt:

KeyDown


KeyPress


KeyUp




SendKeys-Anweisung


Sendet eine Tastenfolge (die aus einem oder mehreren Tastenanschlägen bestehen kann) an das aktive Fenster, als ob sie über die Tastatur eingegeben worden wäre.

Syntax

SendKeys string[, wait]

Die Syntax der SendKeys-Anweisung verwendet die folgenden benannten Argumente:

Teil Beschreibung
string Erforderlich. Ein Zeichenfolgenausdruck, der die zu sendende Tastenfolge angibt.
wait Optional. Ein Wert vom Typ Boolean, der den Wartemodus angibt. Wenn der Wert False ist (Voreinstellung), setzt die Prozedur die Ausführung fort, unmittelbar nachdem die Tastenfolge gesendet wurde. Wenn der Wert True ist, muß die Tastenfolge verarbeitet werden, bevor die Prozedur die Ausführung fortsetzen kann.



Bemerkungen

Jede Taste wird durch mindestens ein Zeichen repräsentiert. Ein einzelnes Zeichen auf der Tastatur kann mit dem Zeichen selbst angegeben werden. "A" für das Argument string repräsentiert beispielsweise den Buchstaben A. Sie geben mehrere Zeichen an, indem Sie die Zeichen aneinanderhängen. "ABC" für string repräsentiert zum Beispiel die Buchstaben A, B und C.

Das Pluszeichen (+), Caret-Zeichen (^), Prozentzeichen (%), die Tilde (~) und die Klammern ( ) haben bei der SendKeys-Anweisung eine spezielle Bedeutung. Sie müssen jedes dieser Zeichen in geschweifte Klammern einschließen ({}), um es verwenden zu können. Für das Pluszeichen geben Sie beispielsweise {+}an. Eckige Klammern ([ ]) haben bei der SendKeys-Anweisung zwar keine spezielle Bedeutung, müssen aber auch in geschweifte Klammern eingeschlossen werden, da sie in anderen Anwendungen eine spezielle Bedeutung haben, insbesondere im Zusammenhang mit dynamischem Datenaustausch (DDE). Die Zeichen für die geschweiften Klammern legen Sie unter Verwendung von {{} und {}} fest.

Für Zeichen, die beim Drücken einer Taste nicht angezeigt werden (z.B. die EINGABETASTE oder TAB-TASTE) und für bestimmte Aktionstasten können Sie die folgenden Codes verwenden:

Taste Code
RÜCKTASTE {BACKSPACE}, {BS} oder {BKSP}
PAUSE {BREAK}
FESTSTELLTASTE {CAPSLOCK}
ENTF {DELETE} oder {DEL}
NACH-UNTEN {DOWN}
ENDE {END}
EINGABETASTE {ENTER}oder ~
ESC {ESC}
HILFE {HELP}
POS 1 {HOME}
EINFG {INSERT} oder {INS}
NACH-LINKS {LEFT}
NUM-FESTSTELL {NUMLOCK}
BILD-AB {PGDN}
BILD-AUF {PGUP}
DRUCK {PRTSC}
NACH-RECHTS {RIGHT}
ROLLEN-FESTSTELL {SCROLLLOCK}
TAB {TAB}
NACH-OBEN {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}



Sie können Tastenkombinationen mit der UMSCHALTTASTE, STRG-TASTE oder ALT-TASTE angeben, indem Sie vor dem normalen Tasten-Code einen oder mehrere der folgenden Codes angeben:

Taste Code
UMSCHALT +
STRG ^
ALT %



Wenn UMSCHALT, STRG und ALT gleichzeitig mit anderen Tasten gedrückt werden müssen, schließen Sie die Codes für die Tasten in Klammern ein. Wenn zum Beispiel die UMSCHALTTASTE gleichzeitig mit den Tasten E und C gedrückt werden soll, geben Sie "+(EC)" an. Wenn die UMSCHALTTASTE zusammen mit E gedrückt werden soll und im Anschluß daran C ohne UMSCHALTTASTE, geben Sie "+EC" an.

Tastenwiederholungen können Sie in der Form {Taste Zahl} angeben. Das Leerzeichen zwischen Taste und Zahl ist dabei zwingend erforderlich. {LEFT 42} wird zum Beispiel als 42-maliges Drücken der NACH-LINKS-TASTE interpretiert, {h 10} als 10-maliges Drücken der Taste H.

Anmerkung SendKeys kann keine Tastenanschläge an Anwendungen senden, die nicht unter Microsoft Windows oder auf dem Macintosh ausgeführt werden können. SendKeys kann auch die DRUCK-TASTE {PRTSC} an keine Anwendung senden.
Anzeige
AW: Taste zeitweilig deaktivieren
21.11.2003 23:48:58
RomanoWirth
Hallo,

danke, das hilft aber leider nicht, weil die fragliche Taste
(KeyCode 91)sich davon nicht beeindrucken läßt.

Gruß Romano
noch offen
22.11.2003 16:34:35
RomanoWirth
ot
AW: noch offen
23.11.2003 11:01:17
Nepumuk
Hallo Romano,
wie habe ich das zu verstehen, "wärend mein Programm läuft". So lange eine Routine läuft oder solange diese spezielle Excelmappe geöffnet ist?
Gruß
Nepumuk
Anzeige
AW: Taste zeitweilig deaktivieren
23.11.2003 14:14:19
Reinhard
Hallo Romano,
man kann die Taste durch Registryeinträge deaktivieren (zumindest bei einigen Windowsversionen), allerdings muss man danach einen Neustart durchführen.
Die Registry Einträge sind abhängig von der Windowsversion.
Gruß
Reinhard
;
Anzeige

Infobox / Tutorial

Temporäres Deaktivieren von Tasten in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul:

    • Klicke im Projekt-Explorer mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)".
    • Wähle "Einfügen" und dann "Modul".
  3. Füge den folgenden Code ein, um die Windows-Taste zu deaktivieren:

    Sub DeactivateWindowsKey()
       Application.OnKey "^({ESC})", "" ' Deaktiviert die ESC-Taste
    End Sub
  4. Führe das Makro aus, um die Taste zu deaktivieren, während dein Programm läuft.

  5. Aktiviere die Taste wieder mit folgendem Code:

    Sub ActivateWindowsKey()
       Application.OnKey "^({ESC})"
    End Sub
  6. Speichere dein Projekt und schließe den VBA-Editor.


Häufige Fehler und Lösungen

  • Fehler: Die ESC-Taste lässt sich nicht deaktivieren

    • Lösung: Überprüfe, ob andere Makros oder Anwendungen die Tastenzuweisungen beeinflussen. Möglicherweise sind Windows-Shortcuts aktiv, die die Deaktivierung stören.
  • Fehler: Windows-Taste deaktiviert sich nicht

    • Lösung: Die Windows-Taste kann nicht direkt über VBA deaktiviert werden. Stattdessen kannst du Registry-Änderungen in Betracht ziehen (aber sei vorsichtig und erstelle vorher ein Backup).

Alternative Methoden

  • Registry-Änderungen:

    • Du kannst die Windows-Taste über die Registry deaktivieren. Dies erfordert jedoch einen Neustart des Systems. Gehe zu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout und füge einen neuen Wert hinzu.
  • Tastatur-Mapper: Verwende Software wie KeyMapper, um Tasten zu deaktivieren. Dies kann eine einfachere Lösung sein, besonders wenn du nicht mit VBA arbeiten möchtest.


Praktische Beispiele

  • Deaktivieren der Feststelltaste in Excel:

    Sub DeactivateCapsLock()
      Application.OnKey "{CAPSLOCK}", "" ' Deaktiviert die Feststelltaste
    End Sub
  • Rollen in Excel deaktivieren:

    Sub DeactivateScrollLock()
      Application.OnKey "{SCROLLLOCK}", "" ' Deaktiviert die Scroll Lock Taste
    End Sub

Diese Beispiele zeigen, wie du spezifische Tasten in Excel deaktivieren kannst, um unerwünschte Eingaben zu vermeiden.


Tipps für Profis

  • Kombiniere die Deactivation-Methoden mit Benutzeranpassungen, um die Benutzerfreundlichkeit zu erhöhen.

  • Nutze SendKeys, um Tastenkombinationen zu simulieren. Beachte jedoch, dass dies nicht immer zuverlässig ist:

    Sub SendAltTab()
       SendKeys "%{TAB}"
    End Sub
  • Überlege, wie du die ESC-Taste deaktivieren kannst, wenn du ein Formular verwendest, um Eingaben zu steuern.


FAQ: Häufige Fragen

1. Kann ich die Windows-Taste dauerhaft deaktivieren? Ja, dies kann über Registry-Änderungen erfolgen, jedoch ist dies mit Vorsicht zu genießen und sollte nur von erfahrenen Benutzern durchgeführt werden.

2. Gibt es eine Möglichkeit, die Alt + Tab Funktion zu deaktivieren? Die Kombination Alt + Tab kann nicht direkt über Excel deaktiviert werden, da sie eine Windows-Funktion ist. Drittanbieter-Software kann hierbei helfen.

3. Was mache ich, wenn die Feststelltaste sich nicht deaktivieren lässt? Überprüfe, ob andere Programme oder Makros die Funktion der Feststelltaste beeinflussen. Möglicherweise musst du die Einstellungen in Windows anpassen oder alternative Methoden verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige