Thema Datum  Von Nutzer Rating
Antwort
30.10.2007 10:52:39 Mike
NotSolved
Blau Aw:Zustand von CapsLockON in Userform darstellen
30.10.2007 18:19:12 Holger
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
30.10.2007 18:19:12
Views:
948
Rating: Antwort:
  Ja
Thema:
Aw:Zustand von CapsLockON in Userform darstellen
Hallo Mike,
ich arbeite mit Office 2000, in dem kein "GetKeyState"-Befehl vorkommt /zumindest ist er mir nicht bekannt). In Office 2000 unterstützt nur Word die Eigenschaft CapsLock, deshalb musst du ein Objekt zum Zugriff auf die Wordeigenschaften (hier w1) anlegen. Da dies etwas Zeit benötigt, also die Antwort erst einen Augenblick nach der Objekterzeugung angezeigt werden kann, empfehle ich, eine öffentliche Objektvariable zu deklarieren mit Wertzuweisung in der UserForm-Initialisierung. Leider muss bei dieser Lösung für jedes Steuerelement der UserForm eine KeyDown-Sub angelegt werden.

Private w1 As Object

Private Sub CommandButton1_Click()
Unload UserForm1
End Sub

Private Sub UserForm_Initialize()
Set w1 = CreateObject("Word.Application")
CabsLockTest
End Sub
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
CabsLockTest
End Sub

Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
CabsLockTest
End Sub

Private Sub CabsLockTest()
If w1.CapsLock = True Then
Label1.Caption = "CapsLock ist eingeschaltet!"
Else
Label1.Caption = "CapsLock ist ausgeschaltet!"
End If
End Sub

Hoffentlich klappt es.
Holger



Mike schrieb am 30.10.2007 10:52:39:

Hallo! Ich habe eine Excel Tabelle erstellt. Beim Öffnen habe ich eine Passwortabfrage gebastelt. Beim 2.MAl falsch wird die Anwendung geschlossen. PROBLEM: Nun möchte ich den Zustand der CApslock -Taste in einem Label darstellen, um bei eingeschalteter CapsLock den Benutzer daraufhinweisen zu können.
Es soll also nur stehen"CapsLock ist an!"
Ähnlich bei Windows Anmeldung.



Hier mein Code für die Userform:


Private Sub CmdOK_Click()
PWWR = Sheets("Gerät").Range("AZ2")
Passwort = Sheets("Gerät").Range("AZ1")
If Secure.TextBox1.Value = Passwort Then
Sheets("Gerät").Select
ActiveSheet.Unprotect
Columns("AA:AZ").Select
Selection.EntireColumn.Hidden = True
Range("C11:C13").Select
Selection.Locked = False
Range("B11:B13").Select
Selection.Locked = False
ExecuteExcel4Macro ("SOUND.PLAY(,""//ausbserver1\home\Gerätebezeichnung\Klänge\welcome.wav"")")
ActiveSheet.Protect
Range("H8").Select
Unload Secure
Call security.Zu
Sheets("Gerät").Range("AZ2") = ""

Else
PWWR = PWWR + 1
Text = "Bitte Neueingabe, der Code war FALSCH!"
Label1.Caption = Text
ExecuteExcel4Macro ("SOUND.PLAY(,""//ausbserver1\home\Gerätebezeichnung\Klänge\bad.wav"")")
If PWWR > 1 Then
Dim Mldg, Stil, Titel, Antwort, Text1
Mldg = "Na, wer wird denn hier Hacken wollen? Anwendung wird geschlossen! ;-)"
Stil = vbCritical
Titel = "OHNE PASSWORT GEHTS NICHT!"
Antwort = MsgBox(Mldg, Stil, Titel)
ExecuteExcel4Macro ("SOUND.PLAY(,""//ausbserver1\home\Gerätebezeichnung\Klänge\so.wav"")")
Unload Secure
Application.Quit
ThisWorkbook.Close False
End If
Sheets("Gerät").Range("AZ2") = PWWR
End If
End Sub

Zur Zeit mache ich die Abfrage capslockON noch mit Schaltfläche:


Private Sub CommandButton3_Click()
Call hochstellON
End Sub
Hier das MAkro dazu:

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Private Function CapsLockOn() As Boolean
Dim xState As Integer
xState = GetKeyState(vbKeyCapital)
CapsLockOn = (xState = 1 Or xState = -127)
End Function

Sub hochstellON()
'
' hochstellON Makro
' Makro am 30.10.2007 von mike aufgezeichnet
'

'
If CapsLockOn = True Then
MsgBox "CapsLock ist eingeschaltet!"
Else
MsgBox "CapsLock ist ausgeschaltet!"

End If
End Sub

Ich hoffe Ihr könnt mir weiterhelfen!

Vielen Dank im Vorraus!

Gruß
Mike

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
30.10.2007 10:52:39 Mike
NotSolved
Blau Aw:Zustand von CapsLockON in Userform darstellen
30.10.2007 18:19:12 Holger
NotSolved