회사에서 데이터 입력창에 값을 입력하면, 셀에 자동으로 입력되는 기능을 구현 달라는 요청을 받았다.
요청 사항을 이행하기 위해서, VBA(Visual Basic Application)을 사용기로 했다.
대략적인 시나리오는 다음과 같이 구성했다.
버튼 클릭 -> 입력창 생성 -> 값 입력 -> 입력하기 버튼 클릭 -> 셀에 자동으로 값이 입력 됨 -> 입력창 리셋 -> 추가 입력 또는 닫기 버튼으로 입력을 종료함
문제는 입력창에 숫자를 입력했을 때, 자릿수마다 ,(콤마)가 생성되지 않아서
사용자의 어려움이 예상됐다.
그래서 입력청에 숫자만 입력할 수 있고, 숫자 입력 시, 자릿수마다 ,(콤마)가 생성되는 코드를 찾아서 적용했다,
Option Explicit
Dim blnEvent As Boolean
Private Sub TextBox13_Change()
Dim strText As String, strImsi As String
Dim lngStart As Long, lngImsi As Long, lngPeriod As Long
If Not blnEvent Then
'이벤트시 중복실행을 방지
blnEvent = True
With TextBox13
lngStart = .SelStart '커서위치 파악
strText = .Text
strImsi = Application.Substitute$(strText, ".", ".0")
strImsi = Format$(strImsi, "#,##0")
'반올림되지 않도록 lngImsi = Len(strText)
lngPeriod = InStr(strText, ".")
If lngPeriod Then
If IsNumeric(strImsi) Then
.Text = strImsi & Mid$(strText, lngPeriod)
End If
Else
.Text = strImsi
End If
.SelStart = lngStart + IIf(Len(.Text) > lngImsi, 1, 0)
End With
End If
blnEvent = False
End Sub
TextBox에 위 코드를 입력하면, 숫자를 입력하면 자동으로 ,(콤마)가 생성 된다.
굉장히 잘 짜여져있다.
출저가...기억이 안 난다.
죄송합니다.
그래도 코드는 굉장히 잘 동작했다.
'엉망진창 AI > Study' 카테고리의 다른 글
추천엔진 라이브러리 (0) | 2022.12.27 |
---|