MS 오피스 팁/Excel

[Excel/VBA] 특정 셀의 값 수정 시 다른 셀로 자동 이동

노하우저장소 2020. 8. 19.

엑셀 양식 확정이 되어 반복 입력 작업이 매일 수 차례 반복된다고 생각해봅시다.

또는 양식이 계산을 위한 것이고 다양한 입력 조건에 따른 계산 결과를 하루에 수 십 차례 반복해서 계산한다고도 생각할 수 있습니다.

 

이런 경우 값을 입력하기 위해 특정 셀을 하나하나 선택하는 것 자체가 부담이 될 수 있습니다.

입력해야 할 셀로 순차적 자동 이동하게 할 수 있다면 업무 효율이 개선될 수 있을 것입니다.

상기와 같은 사례의 간단한 예제를 만들어 보았습니다.

두 값을 더한 결과를 표시해주는 계산기 양식입니다.

값을 입력하고 엔터(또는 탭)를 치면 두 번째 입력 셀로 자동 이동하며,
또 두 번째 값을 입력하면 첫 번째 입력 셀로 돌아가도록 작성해보았습니다.

 

VBA 코드 구성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Worksheet_Change(ByVal Target As Range)
 
    
'변화를 감지할 셀들을 지정합니다.
 
Set input1 = Range("A3")
Set input2 = Range("C3")
 
 
 
'조건 별 셀 이동 명령을 아래에 나열 합니다.
 
If Not Intersect(input1, Target) Is Nothing Then
    Range("C3").Select
End If
 
 
If Not Intersect(input2, Target) Is Nothing Then
    Range("A3").Select
End If
 
 
End Sub
 
cs

 

코드 구동 원리

  • 셀 범위 정의 : input1 등의 이름으로 지정된 변수에 변화를 감지할 셀 주소(Range("A3") 등)를 할당하여, input2, input3 등으로 이름을 자유롭게 나열함 (본 예제는 입력 셀이 2개라 2개의 셀 범위만 정의함)
  • If 조건문 : Target(마우스로 선택한 셀)과 input1 등이 일치한 경우(if) 셀 값의 변화가 있으면(then) 특정 셀을 select 함 (셀 이동)
  • 첫 번째 if 조건문 설명 : 셀 A3는 input1로 정의됨, 즉 A3를 선택한 후 값을 변경하면 C3가 선택됨
  • 두 번째 if 조건문 설명 : 셀 C3는 input2로 정의됨, 즉 C3를 선택한 후 값을 변경하면 A3가 선택됨 

 

코드 입력 방법 (사전 개발도구 활성화 필수)

  1. 개발도구를 선택
  2. Visual Basic 클릭 (단축키 Alt + F11)
  3. Visual Basic 편집기가 열리면 셀 자동 이동을 구현할 시트 선택 (예 Sheet1)
  4. 코드 입력 (위 예제 코드 복사하여 붙여 넣기 하면 됨)
  5. 편집기 닫기

셀자동이동.xlsm
0.02MB

이상입니다.

댓글