-
엑셀VBA 사용자 정의 폼을 사용해 로그인 기능 만들기 #3Dung--[엑셀] 2023. 4. 4. 18:41
엑셀VBA 사용자 정의 폼을 사용해 로그인 기능 만들기 #3
이번에 예제는 엑셀이 시작될시 로그인 창을 뜨게 해서 정확한 값들을 입력하지 않으면 엑셀을 실행하지 못하게 할것입니다. 그래야지 로그인 창이겠지요?
1. 엑셀을 실행하면 창이 뜨게 되고 정확한 값을 입력하지 않게되면 틀리다고 메시지를 나타내게 됩니다. 그리고 종료를 누르게 되면 엑셀이 종료가 됩니다.
2. 이것들을 구현하기 위해서는 몇가지 수정을 하겠습니다. 종료 버튼을 클릭하면 엑셀 전체가 종료하게 되는데 Application.Quit를 사용하였습니다.
엑셀 예시1 3. 폼을 엑셀이 로등할 때 나타내기 위해 [현재_통합_문서]에서 작업을 하였습니다. Workbook_Open() 이벤트가 발생할때는 frmLogin.Show 로 폼을 나타내게 되는 것입니다. 사용자 정보시트에 로그인 정보가 있는데 보이게 되면 안되기에 처음에 숨깁니다.
Private Sub Workbook_Open()
Worksheets("사용자정보").Visible = False
frmLogin.Show
End Sub엑셀 예시2 4. 다음에는 로그인 폼에서 x 버튼을 클릭하게 되면 로그인 없이 들어갈 수 있기에 그부분을 제어하여야 합니다. UserForm의 QueryClose() 이벤트 함수에서 가로채는게 가능해요. 인수로 넘어오는 CloseMode 상수값이 vbFormControlMenu 이면 X버튼이라는것입니다. 이부분이 작동하지 않도록 아래 처럼 소스를 추가하였습니다.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "x 버튼은 동작하지 않습니다."
Cancel = True
End If
End Sub엑셀 예시3 5. 프로그램을 실행하셔서 폼의 X 버튼을 클릭하시면 하단과 같은 메시지를 띄워줍니다.
엑셀 예시4 6. 마지막으로 로그인 버튼을 클릭하였을때의 전체 소스입니다. 로그인이 제대로 되었으면 Worksheets("사용자정보").Visible = True 사용하여서 사용자 정보 시트를 다시 보이게 하였습니다.
Private Sub btnConfirm_Click()
Dim loginData As Range
Dim pwd As String
Dim name As String
Set loginData = Sheets("사용자정보").Range("A3:C6")
On Error Resume Next
pwd = Application.VLookup(Me.txtId, loginData, 2, 0)
name = Application.VLookup(Me.txtId, loginData, 3, 0)
'' VLookup 에서 찾지 못했을때 이부분을 타게됨
If Err.Number <> 0 Then
MsgBox "해당 ID 가 존재하지 않습니다.\n 다시 확인해주세요", vbCritical, "ID 오류"
Exit Sub
End If
'' 패스워드 확인
If pwd = Trim(Me.txtPwd) Then
MsgBox "로그인 성공하였습니다.", vbInformation, "로그인확인"
Worksheets("사용자정보").Visible = True
Unload Me
Else
MsgBox "암호가 일치하지 않습니다.", vbCritical, "패스워드 오류"
End If
End Sub7. 이상으로 사용자 정의 폼을 이용하여 엑셀도 정해진 사용자 이외에 사용하지 못하도록 보안기능을 넣었는데 이것이 그렇게 완벽하지는 않습니다. 몇가지 틈이 있는데 이것은 사용자의 몫으로 놔두겠습니다. ^^
엑셀VBA 사용자 정의 폼을 사용해 로그인 기능 만들기 #1 :: 만물주머니 (tistory.com)
엑셀VBA 사용자 정의 폼을 사용해 로그인 기능 만들기 #1
엑셀VBA 사용자 정의 폼을 사용해 로그인 기능 만들기 #1 사용자의 정의 폼을 활용하면 일반 프로그램과 같이 UI를 가진 엑셀을 제작할 수 있습니다. 이번에 보실 예제가 로그인 폼인데 아이디/패
dsmotion.tistory.com
엑셀VBA 사용자 정의 폼을 사용해 로그인 기능 만들기 #2 :: 만물주머니 (tistory.com)
엑셀VBA 사용자 정의 폼을 사용해 로그인 기능 만들기 #2
2부에 이어서 사용자 정의 폼으로 로그인 기능을 구현하게 되는데 소스부분에 대한 이야기를 계속하겠습니다. 이전에 만들어 두었던 시트에 로그인 정보가 있기에 그 정보를 가져와서 폼에 입
dsmotion.tistory.com
'Dung--[엑셀]' 카테고리의 다른 글
엑셀 VBA 선택한 셀시트명, 파일명, 위치 알아보는 사용자정의 함수 (0) 2023.04.06 엑셀 배열수식을 활용해 두개의 열을 만족하는 값 구하기 (0) 2023.04.06 엑셀VBA 사용자 정의 폼을 사용해 로그인 기능 만들기 #2 (0) 2023.04.04 엑셀VBA 사용자 정의 폼을 사용해 로그인 기능 만들기 #1 (0) 2023.04.04 엑셀 VBA PrintPreview, PrintOut 함수 인쇄미리보기 인쇄하기 (0) 2023.04.04