Vba:셀 값이 변경될 때 매크로를 실행하는 방법
특정 셀 값이 변경될 때 VBA에서 다음 구문을 사용하여 매크로를 실행할 수 있습니다.
Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = " $A$1 " Then
Call MultiplyMacro
End If
End Sub
이 특정 예에서는 A1 셀의 값이 변경될 때 MultiplyMacro 라는 매크로가 실행됩니다.
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
예: VBA를 사용하여 셀 값이 변경되면 매크로 실행
셀 A1 과 B1 의 값을 곱하고 그 결과를 셀 C1 에 표시하는 MultiplyMacro 라는 다음 매크로를 생성한다고 가정합니다.
SubMultiplyMacro ()
Range(" C1 ") = Range(" A1 ") * Range(" B1 ")
End Sub
예를 들어 셀 A1 에 값 12가 있고 셀 B1 에 값 3이 있다고 가정합니다.
이 매크로를 실행하면 다음과 같은 결과를 얻게 됩니다.
이제 A1 셀의 값이 변경될 때마다 이 매크로를 자동으로 실행한다고 가정합니다.
이렇게 하려면 시트 이름을 마우스 오른쪽 버튼으로 클릭한 다음 코드 표시를 클릭하면 됩니다.
나타나는 코드 편집 창에서 다음 코드를 붙여넣을 수 있습니다.
Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = " $A$1 " Then
Call MultiplyMacro
End If
End Sub
다음 스크린샷은 실제로 이 작업을 수행하는 방법을 보여줍니다.
그런 다음 VB 편집기를 닫을 수 있습니다.
이제 A1 셀의 값을 변경할 때마다 MultiplyMacro 라는 매크로가 자동으로 실행되어 A1 셀의 새 값을 사용하여 곱셈을 수행합니다.
예를 들어 A1 셀의 값을 10 으로 변경한다고 가정합니다. 값을 변경하고 Enter 키를 누르면 매크로가 실행됩니다.
매크로는 10에 3을 곱하고 그 결과를 셀 C2 에 표시합니다.
참고 : 특정 범위의 셀이 변경될 때 매크로를 실행하려면 다음 구문을 사용할 수 있습니다.
Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(" A1:B1 ")) Is Nothing Then
Call MultiplyMacro
End If
End Sub
이렇게 하면 A1:B1 범위의 셀이 변경되면 MultiplyMacro 라는 매크로가 실행됩니다.
추가 리소스
다음 자습서에서는 VBA에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
VBA: 통합 문서의 시트 수를 계산하는 방법
VBA: 다른 통합 문서에서 데이터를 추출하는 방법
VBA: 새 시트를 추가하는 방법