본문 바로가기
Office/VBA

두 Excel 파일의 VBA 코드 비교

by belitino 2016. 11. 18.

출처: http://www.mrexcel.com/forum/excel-questions/557218-any-recommended-method-compare-visual-basic-applications-modules.html

 

완결까지 시간이 좀 걸리는 Excel VBA 프로그램을 하다보면 여러 개의 파일로 다른 버전을 만들어 놓고는 하는데, 가끔은 두 버전 간의 차이가 어떻게 되는지 궁금한 경우가 생깁니다. 이전 버전으로 roll back을 해야 하는 경우도 생기고요.

 

Visual C++이었으면 Subversion이나 WinMerge로 비교하면 되는데, VBA는 그렇게 비교하기가 어려워서 중요한 모듈만 Text 파일로 만들어서 WinMerge로 비교하고 했습니다.

 

그런데, Form이나 모듈이 많아지면 폼이나 모듈을 일일히 하나씩 선택해서 Export하고 나중에 덮어쓰는 것도 귀찮더군요, 문제를 해결할 방법을 구글링해보니 출처에서 여러 폼과 모듈을 한방에 Export/Import 할 수 있는 방법이 있네요.

 

Excel VBA Code Cleaner란 프로그램인데, http://www.appspro.com/Utilities/CodeCleaner.htm 에서 무료로 다운 받으실 수 있습니다. 좋은 프로그램인데 아쉽게도 64비트 버전은 지원하지 않네요.

 

정리하면, VBA Code간의 비교는 WinMerge를 사용해서 비교하고, 비교를 위해 Excel 파일에서 여러 폼/모듈을 Export하고 비교 후 다시 Import하는 것은 Excel VBA Code Cleaner를 사용하시면 됩니다.

 

이 방법도 Export/Import를 해야해서 조금 불편한데 VBADiff라는 유료 프로그램을 사용하면 귀찮은 Export/Import 과정없이 Excel 파일에서 바로 비교가 되네요. 30일 무료 버전이 있으니 한 번 써보시는 것도 좋을 것 같네요. http://www.vbadiff.com/TrialVbaDiff.aspx

 

VBADiff도 비교를 위해서는 WinMerge, UltraCompare, TortoisSubversion 같은 Diff tool이 필요하네요.