본문 바로가기

Office35

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.
VBA에서 16진수를 10진수로 바꾸는 간단한 방법 출처: http://stackoverflow.com/questions/26363113/converting-string-to-hex-in-excel-vba VBA를 사용하다가 16진수를 10진수로 바꿔야 할 일이 생겼습니다. 16진수로 바꿔주는 것은 Hex 함수가 있길래 당연히 Dec()이나 CDec()을 쓰면 되겠지 싶었는데 잘 안되더군요. Hex2Dec()은 사용이 가능하지만 WorksheetFunction이라 Application.WorksheetFunction.Hex2Dec() 처럼 써야 해서 문장이 길고 불편합니다. 출처에 나온 Val 함수를 이용한 방식은 FromHex = Val("&H" & hexString) 처럼 사용하면 되니 간편하네요. 2016. 8. 29.
VBA 한 줄에 변수 여러개 선언 출처: https://wikidocs.net/2041 VBA 변수 선언할 때 비슷한 변수를 한줄에 선언하고 싶을 경우가 있습니다. 이를 어떻게 하는지 궁금해서 구글링해보면 가장 처음에 나오는게 MSDN 사이트인데요. (https://msdn.microsoft.com/ko-kr/library/7ee5a7s1.aspx) MSDN에서는 한줄에 여러 변수를 선언 하려고 할때 다음과 같이 선언하라고 합니다. Dim lastTime, nextTime, allTimes() As Date 근데 문제는 MSDN 사이트에 나온 설명은 Visual Basic에 대한 설명이지 VBA(Visual Basic for Applications)에 대한 설명이 아닙니다. VB나 VBA나 비슷하겠지 하고 VBA에서 그대로 사용하게 되면.. 2016. 7. 23.