처음 엑셀 시트에 자료를 입력하고 폼을 만들 경우에는 일일히 입력하고
폼을 만들고는 하지만 한 번 고정된 폼이 생기면 대부분 어떤 특정 셀에만
자료를 입력하면 자동으로 계산하도록 수식을 넣어 두고 작업을 합니다.
이 팁은 폼이 복잡하지 않고 자료가 얼마되지 않을 때에는 유용하지 않지만
자료의 내용이 많아지고 지속적으로 자료를 입력하고 조회 하는 경우에는
그 자료의 행이 어떤 행인지 헷갈리는 경우가 많아 대부분 엑셀의 행번호가
밝게 빛나는 것으로 확인을 하지만 중간에 있는 자료를 확인해 비교하기에는
어려운 경우가 있는 경우 아주 유용한 내용입니다.
그렇게 복잡하지도 않고 몇 줄만 코드에 입력하면 특정 영역의 셀이 선택되면
그행의 전부나 혹은 그 행의 특정 영역을 자동으로 선택해 주고 입력이 필요한
특정 셀로 이동해서 바로 입력을 하면 됩니다.
Alt + F11을 눌러 VBA 에디터를 열고 내가 자동 선택이 필요한 시트를 선택해서
더블 클릭을 하면 오른쪽 에디터 왼쪽 콤보박스에서 일반, Worksheet 중에서
Worksheet를 선택하고 오른쪽 콤보 박스에서 SelectionChange라른 서브루틴을
선택해서 아래의 코드를 중간에 붙여 넣으면 됩니다.
Dim colsCnt As Integer ' 열의 개수 넣을 변수
If ActiveSheet.Name = "OrderSheet" Then ' 만약 시트의 이름이 "OrderSheet" 라면
' colsCnt = Range("B1").Value ' 특정열에서부터 선택될 열의 개수. 필요시 조정
colsCnt = 10 ' 열의 개수 고정시
If Target.Count > 1 Then Exit Sub '1개 이상의 셀을 선택하면 매크로 중지
' If Intersect(Columns("C:S"), Target) Is Nothing Then Exit Sub ' J:S 열 아니면 매크로 중지
If Intersect(Range("C1:S300"), Target) Is Nothing Then Exit Sub ' 특정 영역이 아니면 매크로 중지
' 1열부터 선택한 열까지 선택, 영역을 바꾸려면 1, colsCnt를 바꾸면 됨
Cells(Target.Row, 1).Resize(, colsCnt).Select
' 특정 열만 자료를 입력해서 수정할 경우 자동으로 그 열(colsCnt)로 이동 시킴
Cells(Target.Row, colsCnt).Activate
End If
이렇게 해서 저장을 하고 사용하면 위 코드에 주석을 달아 놓은 것을 해석해서
필요한 영역을 지정해서 그 곳의 셀이 선택되면 필요한 행의 영역을 자동으로
선택하고 입력이 필요한 곳으로 이동합니다.
Worksheet ->Workbook,
SelectionChange -> SheetChange