728x90
반응형
회사에서 데이터 입력창에 값을 입력하면, 셀에 자동으로 입력되는 기능을 구현 달라는 요청을 받았다.
요청 사항을 이행하기 위해서, 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에 위 코드를 입력하면, 숫자를 입력하면 자동으로 ,(콤마)가 생성 된다.
굉장히 잘 짜여져있다.
출저가...기억이 안 난다.
죄송합니다.
그래도 코드는 굉장히 잘 동작했다.
728x90
반응형
'엉망진창 AI > Study' 카테고리의 다른 글
추천엔진 라이브러리 (0) | 2022.12.27 |
---|