programing

키를 입력하여 VBA 사용자 양식에서 버튼을 누릅니다.

powerit 2023. 6. 27. 22:35
반응형

키를 입력하여 VBA 사용자 양식에서 버튼을 누릅니다.

나는 사용자 이름과 비밀번호를 묻는 엑셀 사용자 양식을 가지고 있습니다.일단 당신이 비밀번호를 입력하면, 당신이 그것을 누르면 단지 다음 항목인 "선택"합니다.LogIn버튼을 누르지만, 누르지 않습니다.버튼을 누르려면 다시 눌러야 합니다.

사용자가 키보드에서 Enter 키를 누르면 LogIn 버튼이 눌리고 관련 코드가 실행되도록 하려면 어떻게 해야 합니까(Logincode_click)?

TextBox의 On Key Press 이벤트 핸들러를 사용할 수도 있습니다.

'Keycode for "Enter" is 13
Private Sub TextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
         Logincode_Click
    End If
End Sub

텍스트 상자1이 예입니다.참조할 텍스트 상자를 선택했는지 확인하고 Logincode_Click은 이 코드로 호출(실행)하는 예제 서브입니다.선호하는 하위 항목을 참조하십시오.

가능할 때마다 자체 상수를 정의하거나 내장된 vbXXX 상수를 사용하여 "매직 숫자"를 피해야 합니다.

이 경우 vbKeyReturn을 사용하여 입력 키의 키 코드를 나타낼 수 있습니다(InputControl 및 SubToBecaller 대체).

   Private Sub YourInputControl_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = vbKeyReturn Then
             SubToBeCalled
        End If
   End Sub

이는 특히 VBA가 식별자를 대문자로 표시하기 때문에 전체 범주의 호환성 문제와 단순한 오타를 방지합니다.

건배!

이건 나한테 효과가 있었어요

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 13 Then
             Button1_Click
        End If
End Sub

@Penn의 코멘트에 추가하고, 링크가 끊길 경우, 다음을 설정하여 이를 달성할 수도 있습니다.Default버튼의 속성.True(속성 창에서 설정할 수 있습니다. 를 눌러 엽니다.)

그러면 VBA가 버튼 클릭 이벤트를 활성화할 수 있습니다.마찬가지로 설정합니다.Cancel단추의 속성.True키를 누를 때마다 해당 버튼의 클릭 이벤트가 실행됩니다(사용자 양식을 정상적으로 종료하는 데 유용).


출처: 올리비에 자코-데스콤브의 답변은 여기에서 확인할 수 있습니다. https://stackoverflow.com/a/22793040/6609896

텍스트 상자 사용Exit이벤트 처리기:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Logincode_Click  
End Sub

여기서는 다음을 간단히 사용할 수 있습니다.

SendKeys "{ENTER}"사용자 이름 필드에 연결된 코드 끝에 있습니다.

ENTER 키를 한 번(한 번) 누르는 것을 건너뛸 수 있습니다.
그 결과 다음 버튼("여기서 로그인" 버튼)이 활성화됩니다.그리고 ENTER(원하는 결과)를 한 번 누르면 "로그인" 버튼과 연결된 코드가 실행됩니다.

언급URL : https://stackoverflow.com/questions/19125240/enterkey-to-press-button-in-vba-userform

반응형