Home MS 엑셀 강좌엑셀 Tips [VBA] 상대 참조를 절대 참조로 한번에 변경하기

[VBA] 상대 참조를 절대 참조로 한번에 변경하기

by 김형백

댓글로 문의를 주신 분이 계셔서 상대 참조를 한번에 절대 참조로 모두 변경하는 방법에 대한 팁을 알려드리겠습니다. 일반적인 메뉴를 통해서 할 수 있는 방법은 없고, VBA를 통한 간단한 프로그래밍을 해줘야 합니다.

엑셀 VBA에는 ConverFomula라고 하는 메쏘드(Method)가 있는데 이것을 활용하면 비교적 쉽게 매크로 작성이 가능합니다. VBA에 익숙하지 않은 분들도 많으신 것 같아 따라하기식으로 진행합니다.

1. 엑셀 통합 문서에서 Alt+F11을 눌러서 비쥬얼 베이직 편집기를 시작합니다. 참고로 MS 오피스의 비쥬얼 베이직 편집기는 MS의 개발 언어 툴인 비쥬얼 베이직을 어플리케이션에서 사용할 수 있도록 제공하는 도구입니다.

2. [삽입-모듈]을 선택해서 새로운 모듈을 삽입합니다.

모듈이 삽입되면 아래 코드를 그대로 입력합니다. (복사&붙여넣기) VBA를 조금 공부하신 분들은 금방 이해하실 수 있을겁니다.

Sub Relative2Absolute()
For Each c In Selection
If c.HasFormula = True Then
c.Formula = Application.ConvertFormula(c.Formula, xlA1, xlA1, xlAbsolute)
End If
Next c
End Sub

아래와 같이 모듈의 서브 클래스가 생깁니다.

4. 이제 필요한 VBA 프로그래밍이 끝났습니다. VBA 편집기를 닫고 다시 엑셀 통합 문서로 돌아옵니다. 절대주소(참조)를 포함하는 셀들을 모두 선택한 후 [보기-매크로]를 선택합니다. 그 후 매크로 창에서 방금 입력한 서브 클래스를 선택하고 [실행]을 클릭합니다.

수식 입력줄을 보면 모든 수식이 상대 참조임을 알 수 있다.

5. 아래 그림처럼 선택된 모든 상대 참조 수식들이 절대 참조로 변경됩니다.

생각보다 간단하게 해결이 되죠?

이상 엑셀에서 상대 참조를 절대 참조로 한번에 변경하는 방법에 대해서 알아봤습니다.

You may also like

1 댓글

지이 2020년 11월 12일 - 3:30 오후

정말 감사합니다^^ 덕분에 일이 빨라졌어요

답변

댓글 남기기