본문 바로가기

Office/VBA17

VBA Application.OnTime x Userform 출처: http://stackoverflow.com/questions/32172889/application-ontime-doesnt-work-with-userform VBA에서 주기적으로 어떤 작업을 하기 위해서 Application.OnTime 메소드를 많이 사용하실텐데요. 저도 특정 시간 후에 어떤 작업을 수행하기 위해서 Userform 안에서 OnTime 메소드 사용해서 Userform 안의 프로시져를 호출하도록 프로그램 했습니다. 그랬더니 아무런 에러 메시지도 안나오면서 정해진 시간에 원하는 프로시져가 수행이 안되더군요. 그래서 구글링을 했더니 출처에서 다음과 같은 답을 얻었습니다. A procedure referenced from Application.OnTime must reside in a .. 2016. 12. 5.
두 Excel 파일의 VBA 코드 비교 출처: 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이나 모듈이 많아지면 폼.. 2016. 11. 18.
VBA "컴파일 오류입니다. 이름이 분명하지 않습니다." 오류 대처 방법 출처: http://www.officetutor.co.kr/board/DType/bfrmvw.asp?f_tn=Dqa_excel_n2&f_bno=104810&page=&fchk=&fval= VBAProject 컴파일을 하다가 "컴파일 오류입니다. 이름이 분명하지 않습니다." 오류가 나는 경우는 보통 같은 모듈내에 같은 이름으로 된 함수나 프로시저가 여러개 존재하면 발생합니다. 저도 실수로 같은 프로시저 명을 두 번 썼더니 발생하더군요. 2016. 10. 23.
vba에서 Enumeration 사용 출처: http://www.cpearson.com/excel/Enums.aspx VBA로 프로그래밍을 하다보면 간단한 상수는 Const로 정의해서 사용하고는 했는데, 여러개의 연관된 상수를 정의할 때는 Enumeration을 사용하는 것이 여러모로 장점이 많네요. 출처에서 열거한 장점들을 보면 1. 해당 Enumeration type 형태의 변수 선언 그럼 다른 타입의 값을 사용할 가능성이 없어서 오류가 날 확률이 줄어들겠지요. 2. 자동 완성 사용 가능 코딩시에 편리할 듯 하네요 3. Loop의 시작, 끝으로 사용 가능 물론 Const로 정의해도 Const의 시작과 끝을 정확히 알고 있다면 Loop의 시작점, 끝점으로 사용할 수 있지만, 출처에서 나온 것처럼 Enumeration을 정의하면 시작과 끝이.. 2016. 9. 18.