안녕하세요 :)
https://kim0404.tistory.com/35
VBA-기초(3)에서 이어지는 글입니다 :)
저 엑셀을 만들다가 생각이 난게 지금껏 만들었던 엑셀은 바코드를 찍고-확인-찍고-확인-찍고-확인...
을 해야한다는 아주 큰 불편함이 생길것 같더라구요 :)
그래서 어떻게 할까 생각하다가 Form을 이용해서 찍으면 바로바로 이력에 쌓일 수 있도록 수정했습니다 :)
위와 같이 간단하게 TextBox의 Change 이벤트를 이용해서 찍자마자 바로 이력 시트에 입력될 수 있도록 만들었어요 :)
■ TextBox Change 이벤트 코드
Private Sub TextBox1_Change()
'입력폼 텍스트
Dim TarTxt
TarTxt = TextBox1.Value
'바코드길이(F3)
Dim TarTxtLen
TarTxtLen = Len(TarTxt)
'오토체크YN
Dim AutoChkYn As String
AutoChkYn = getShData("매크로", 3, "E")
'바코드길이(공통)
Dim BarCodeLen As Integer
BarCodeLen = getShData("매크로", 3, "F")
'오토체크 Y AND (입력값 = 바코드 길이 or 바코드 길이 0 일때)
If AutoChkYn = "Y" And (TarTxtLen = BarCodeLen Or BarCodeLen = 0) Then
'바코드셀에 입력하고 Run 이벤트
Call setShData("매크로", 7, "C", TarTxt)
Call Run_Event
TextBox1.Value = ""
End If
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'MsgBox KeyCode
'KeyCode 13 = "엔터"
'엔터 누를때 Run 이벤트 실행
If KeyCode = 13 Then
'입력폼 텍스트
Dim TarTxt
TarTxt = TextBox1.Value
'바코드셀에 입력하고 Run 이벤트
Call setShData("매크로", 7, "C", TarTxt)
Call Run_Event
TextBox1.Value = ""
End If
End Sub
코드를 보게되면 change 이벤트와 keyUp 이벤트가 있는걸 볼수 있습니다 :)
주석을 달아놔서 쉽게 보실 수 있으실꺼에요 :)
change 이벤트는 TextBox에 타이핑할때마다 change 이벤트를 타게됩니다.
그래서 오토체크와 바코드 길이가 있는데
오토체크 Y일때 바코드 길이셀과 입력한 바코드의 길이가 같다면 자동으로 확인되어 이력에 쌓일 수 있도록 했습니다.
* 오토체크 = Y 바코드길이셀 = 6
12345 <<< 까지 TextBox에 입력되다가 123456 << 6을 입력하게 되면 이력에 쌓이는거죠 ㅎㅎ
이건 수기로 입력할때 사용하는 거고 바코드를 찍게되면 길이를 모르니까
바코드 길이를 0으로 놓으면 어떤 값이든 길이에 상관없이 이력에 기록되도록 설정했습니다 :)
If AutoChkYn = "Y" And (TarTxtLen = BarCodeLen Or BarCodeLen = 0) Then ....
그리고 이 조건에 만족한다면
바코드 셀에 TextBox 값을 입력하고
Call Run_Event를 하게 되는거죠 ㅎㅎ
KeyUp 이벤트의 경우 혹여나 수기로 입력할 때, 바코드 길이가 다를때 엔터버튼으로 기록할 수 있도록 했습니다 :)
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'MsgBox KeyCode
'KeyCode 13 = "엔터"
'엔터 누를때 Run 이벤트 실행
If KeyCode = 13 Then
MsgBox를 통해 KeyCode를 찍어보게 되면 키보드를 입력할 때마다 숫자가 바뀌는것을 알 수 있는데요.
그 숫자가 키보드와 매핑되어있는 숫자입니다 :)
엔터를 눌러보게 되면 13의 숫자가 나오는데, 엔터를 누를때 Run_Event를 실행 시키는 코드입니다 :)
아래 제가 만들었던 엑셀파일을 첨부해 놓을테니 뜯어보세요 ㅎㅎ
이상 VBA 기초 바코드 등록하는 엑셀만들기 였습니다 :)
다음에는 다른 작업물로 돌아올께요
'IT > 엑섹-자작' 카테고리의 다른 글
엑셀 사용법 : VBA-기초(3) 바코드 등록하는 엑셀 만들기-3 (0) | 2023.09.12 |
---|---|
엑셀 사용법 : VBA-기초(2) 바코드 등록하는 엑셀 만들기-2 (0) | 2023.09.11 |
엑셀 사용법 : VBA-기초(1) 바코드 등록하는 엑셀 만들기-1 (0) | 2023.09.10 |