엑셀 VBA 함수 결과 새로 고침: 완벽 가이드
엑셀을 사용할 때 많은 사용자들이 특수한 계산을 수행하기 위해 *사용자 정의 함수(User-Defined Functions, UDFs)*의 힘에 의존합니다. 그러나 스프레드시트의 관련 데이터를 변경한 후 UDF가 자동으로 재평가되지 않는다는 일반적인 문제를 겪을 수 있습니다. 복잡한 함수를 만드는 데 시간을 투자했다면, 이는 특히 실망스러울 수 있습니다.
이번 포스트에서는 엑셀 VBA 함수가 주변 데이터가 변경될 때마다 자동으로 새로 고쳐지도록 하는 방법을 살펴보겠습니다.
문제 이해하기
데이터를 변경한 후 F9
또는 Shift
+ F9
를 눌러도 사용자 정의 함수가 생성한 결과가 업데이트되지 않는 것을 느꼈을 수 있습니다. 유일한 workaround는 함수를 포함하고 있는 셀을 수동으로 편집한 후 Enter를 누르는 것으로, 이는 작업 흐름을 간소화하기에는 이상적이지 않습니다.
내 UDF가 자동으로 새로 고침되지 않는 이유는 무엇인가요?
엑셀의 사용자 정의 함수는 기본적으로 자동으로 재평가되지 않으며, 그렇게 설정되지 않는 한 재평가되지 않습니다. 이 제한으로 인해 데이터가 변경되더라도 UDF는 재계산 명령을 받기 전까지는 구식 결과를 반환할 수 있습니다.
해결책: UDF를 휘발성 함수로 만들기
이 문제를 해결하기 위해 사용자 정의 함수를 휘발성(volatile)
로 설정할 수 있습니다. 함수가 휘발성으로 설정되면 엑셀에서 재계산할 때마다 재계산되며, 이는 통합 문서 전체의 다른 셀에서 변경 사항이 포함됩니다.
Application.Volatile
구현하기
다음은 UDF를 수정하여 Application.Volatile
메서드를 포함하는 간단한 단계별 프로세스입니다.
-
VBA 편집기 열기:
ALT
+F11
을 눌러 엑셀에서 VBA 편집기를 엽니다. -
함수 찾기: 프로젝트에서 관련 함수를 찾습니다. 예를 들어, 숫자를 두 배로 만드는 함수가 있다면 VBA 모듈에서 이를 찾습니다.
-
Application.Volatile
삽입: 함수의 시작 부분에Application.Volatile
라는 줄을 추가합니다.수정 후 함수의 간단한 예는 다음과 같습니다:
Function doubleMe(d) Application.Volatile doubleMe = d * 2 End Function
코드 설명
Application.Volatile
문장은 함수를 휘발성으로 표시합니다.- 이는 Excel이 재계산할 때 마다 함수를 실행하게 합니다(다른 셀들이 변경될 때).
- 그 결과, 출력은 항상 데이터의 가장 최신 상태를 반영하게 됩니다.
엑셀에서 자동 계산 설정하기
휘발성 함수가 효과적으로 작동하도록 하려면 엑셀 설정이 자동 계산으로 구성되어 있는지 확인하십시오:
- 수식 탭으로 가기: 리본의 “수식” 탭을 클릭합니다.
- 계산 옵션 선택: 계산 그룹에서 “자동"이 선택되어 있는지 확인합니다.
이러한 설정으로, UDF는 변경에 따라 자동으로 업데이트되어 엑셀 사용 경험을 더 효율적이고 오류 없이 만들어줍니다.
결론
이번 가이드에서는 사용자 정의 함수가 예상대로 새로 고쳐지지 않는 엑셀 사용자들이 겪는 일반적인 문제를 다뤘습니다. Application.Volatile
을 활용함으로써 계산을 간소화하고 통합 문서가 수동 개입 없이 업데이트되도록 할 수 있습니다.
VBA 함수의 모든 이점을 누리기 위해 설정을 항상 확인해 두세요. 즐거운 계산 되세요!