카테고리 없음

[엑셀vba] Const 선언 사용해보기

도 박사 2021. 9. 10. 22:10
반응형

프로그래밍에서 쓰는 용어들은 참 어렵다.. 하지만 알아야지  나중에 

Const는 상수라고 하며 변수의 반대 개념이다.

 

변수는 값을 바꿀 수 있지만 상수는 고정값이며 변경 불가능하다.

VBA 코드에서 Const 사용법은 다음과 같다.

Const 상수이름 = 1
Const 상수이름2 = "문자열"
Sub Test()
    Debug.Print 상수이름
    Debug.Print 상수이름2
End Sub

코드 실행 결과

  • 사용법: Const 사용할 이름 = 값
  • 사용법: Public Const 사용할 이름 = 값

기본적으로 상수 선언을 하면 선언된 모듈 내에서만 사용 가능하며, 앞에 Public을 붙여준다면 모든 프로젝트에서 사용할 수 있게 된다. Public 없는 상태로 다른 모듈에서 상수를 호출하면 아무 일도 일어나지 않는다. 만약 Option Explicit 선언이 되어있다면 변수가 정의되지 않았다는 오류 팝업을 볼 수 있다.

 

모듈2에서 상수이름 호출해봄

 

그렇다면 이 Const라는 녀석은 어디에 쓸 수 있을까?

한 가지 예를 들어보자면, 1000줄의 코드에서 "ABC" 문자열이 들어가는 구문이 300줄이 있다고 가정해보자. 그런데 갑자기 "ABC"를 "ACC"로 변경해야 된다고 하면 어떻게 해야 할까? 물론, Ctrl + H 이용해서 모두 바꾸기를 해도 되지만 이건 위험이 따르고 불편함이 존재한다.

 

 

모두 바꾸기 단점(Ctrl + H)

  1. "ABC" 관련된 모든 모듈에서 일일이 바꿔줘야 함
  2. 정확히 "ABC"를 "ACC"로 바꾸고 싶은데 "AABC" 문자열도 "AACC"로 변경되므로 코드 실행 결과가 달라질 수 있음
  3. 여러번 작업해야댐(귀찮음)
  4. 바꾸고 맞게 됐는지 확인해야댐(코드확인, 귀찮음)

이 불편한 것들을 Const 선언을 통해 해결할 수 있다.

 


 

반응형