Vba:셀 값이 변경될 때 매크로를 실행하는 방법


특정 셀 값이 변경될 때 VBA에서 다음 구문을 사용하여 매크로를 실행할 수 있습니다.

 Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = " $A$1 " Then
        Call MultiplyMacro
    End If
End Sub

이 특정 예에서는 A1 셀의 값이 변경될 때 MultiplyMacro 라는 매크로가 실행됩니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: VBA를 사용하여 셀 값이 변경되면 매크로 실행

A1B1 의 값을 곱하고 그 결과를 셀 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: 새 시트를 추가하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다