매크로 없이 비밀번호 입력을 구현하려면 조금 복잡한 것이 사실입니다.
트리거를 이용해서 눌린 숫자에 해당하는 숫자도형이 해당 위치에 나타나게해야 합니다.
4자리 비번입력에서 맨 앞자리의 경우만 예를 들면 1,2,3,4 도형을 누를 때 해당 숫자가 첫번째 빈칸에서 나타나기 애니메이션을 적용하고 트리거를 지정해줍니다. 동시에 다른 숫자는 사라지기 애니메이션을 추가해줍니다.
실행화면:
그런데 네자리 수만해도 트리거 애니메이션을 여러개를 추가해서 애니메이션이 복잡해지게 됩니다.
또한 이미 사용한 숫자를 또 사용할 수 있는 버그가 있습니다.
이 경우 VBA를 약간만 이용해볼 수도 있습니다.
숫자를 클릭하면 해당 위치(pos)에 숫자 도형이 나타나게 하고
확인을 누르면 사용자 답과 정답을 비교해서 정답인 경우 성공 도형이 나타나게 합니다.
중복된 숫자도 방지할 수 있습니다.
더보기
Option Explicit
Dim Pos As Integer
Sub Click(shp As Shape)
Dim sld As Slide
Dim no As Integer
Dim i As Integer
Set sld = shp.Parent
no = CInt(shp.TextFrame.TextRange.Text)
For i = 1 To Pos
If CInt(sld.Shapes("a" & i).TextFrame.TextRange.Text) = no Then
MsgBox "중복입니다."
Exit Sub
End If
Next i
If Pos < 4 Then Pos = Pos + 1
sld.Shapes("a" & Pos).TextFrame.TextRange.Text = no
End Sub
Sub Cancel(shp As Shape)
Dim sld As Slide
Dim i As Integer
Set sld = shp.Parent
If Pos = 0 Then Exit Sub
sld.Shapes("a" & Pos).TextFrame.TextRange.Delete
Pos = Pos - 1
End Sub
Sub Confirm(shp As Shape)
Dim sld As Slide
Dim i As Integer
Dim answer As String
Set sld = shp.Parent
For i = 1 To 4
answer = answer & sld.Shapes("a" & i).TextFrame.TextRange.Text
Next i
If answer = "2314" Then
sld.Shapes("정답!").Visible = msoTrue
Else
sld.Shapes("오답!").Visible = msoTrue
End If
End Sub
Sub Retry(shp As Shape)
Dim sld As Slide
Dim i As Integer
Dim answer As String
Set sld = shp.Parent
Pos = 0
For i = 1 To 4
sld.Shapes("a" & i).TextFrame.TextRange.Delete
Next i
sld.Shapes("정답!").Visible = msoFalse
sld.Shapes("오답!").Visible = msoFalse
End Sub
매크로 실행화면:
그밖에 비밀번호 입력하는 샘플입니다.
'Else' 카테고리의 다른 글
FFMPEG 팁)폴더 내의 모든 wav파일을 mp3로 일괄 변환 batch명령어 (0) | 2023.05.10 |
---|---|
오피스에서 온라인 아이콘, 그림 검색시 Offline 오류 (0) | 2023.04.14 |
부팅시 드라이브 문자 사라지는 이슈 (0) | 2023.04.08 |
파워포인트 표 테두리 적용 방식 (0) | 2023.02.25 |
그림 개체틀 활용하여 여러 개의 그림 일괄 삽입하기 (0) | 2022.12.10 |
텍스트 복사할 때 개행문자까지 복사되는 것을 방지하는 Tip (0) | 2022.11.09 |
파워포인트 글꼴 일괄로 바꾸는 세가지 방법 (0) | 2022.10.05 |
다운 받은 매크로 파일 차단해제 우회 방법 (0) | 2022.06.06 |
최근댓글