VBA의 전역 변수

Iqra Hasnain 2024년2월15일
VBA의 전역 변수

VBA에서 전역 변수를 만드는 방법을 소개합니다. 또한 VBA에서 전역 변수를 사용할 때의 장단점에 대해서도 설명합니다.

VBA의 전역 변수

VBA에서 변수로 작업하는 동안 여러 함수에서 동일한 변수를 사용해야 하는 상황에 직면하게 됩니다. 그러나 함수 내부에서 선언된 변수는 해당 함수 외부에서 사용할 수 없습니다.

이를 위해 VBA에서 전역 변수를 선언합니다. 전역 변수는 매크로 시작 시 선언되는 변수입니다.

이러한 변수는 함수 외부에서 정의되며 함수 또는 모듈에서 사용됩니다. 변수는 Public 또는 Global 키워드로 선언됩니다.

아래 단계에 따라 전역 변수를 선언할 수 있습니다.

  1. Global 또는 Public이라는 키워드를 사용합니다.
  2. 키워드 작성 후 변수명을 선언합니다.
  3. 데이터 유형 목록을 가져오려면 as를 씁니다.
  4. VBA 코드와 관련된 데이터 유형을 선택합니다.

서로 다른 시간의 하위 모듈에 대해 두 개의 변수를 포함해야 하는 경우 전역 변수를 명시적으로 정의하는 것이 좋습니다. 아래와 같이 전역 변수 str을 선언하고 2개의 다른 하위 항목에서 사용하는 예제를 살펴보겠습니다.

Dim str As String

Sub firstSub()

str = "This is first Sub"
MsgBox (str)

End Sub

Sub secondSub()

str = "This is second Sub"
MsgBox (str)

End Sub

출력:

VBA의 2개의 다른 하위에서 사용하는 전역 변수

위의 예에서 볼 수 있듯이 커서가 firstSub() 안에 있으면 첫 번째 하위의 메시지가 표시되고 커서가 secondSub() 안에 있으면 두 번째 하위의 메시지가 표시됩니다.

이런 식으로 여러 하위에서 동일한 변수를 사용할 수 있습니다. 다른 모듈에 전역 변수를 도입하려면 아래와 같이 코드를 작성할 수 있습니다.

Dim globalVar As String

Sub firstSub()

globalVar = 10

End Sub

Sub secondSub()

MsgBox (globalVar)

End Sub

출력:

![VBA의 2개의 다른 하위에서 사용하고 firstSub에서 값을 가져오는 전역 변수](</img/VBA/VBA의 2개의 다른 하위에서 사용하고 firstSub.gif>에서 값을 가져오는 전역 변수

위의 예에서 볼 수 있듯이 firstSub()에서 코드를 실행하면 전역 변수에 값이 할당됩니다. secondSub()에서 코드를 실행하면 해당 값이 표시됩니다.

이제 VBA에서 전역 변수를 사용할 때의 장단점에 대해 살펴보겠습니다.

VBA에서 전역 변수의 장점

전역 변수의 주요 이점은 다음과 같습니다.

  1. 전역 변수는 VBA 코드의 모든 기능과 모듈에 사용할 수 있으므로 전역 변수에 액세스할 수 있습니다.
  2. 전역 변수를 한 번만 정의하면 VBA 코드에서 여러 번 사용할 수 있습니다.
  3. 변수는 긴 코드 작성과 관련된 복잡성이나 변수를 여러 번 포함하여 생성되는 혼란을 방지합니다.
  4. 상수 변수를 선언하면 VBA 매크로의 일관성이 보장됩니다.
  5. 글로벌 변수의 핵심 요소는 손쉬운 유지 보수입니다.
  6. 변수는 한 번만 선언되므로 VBA 코드의 줄 수가 줄어듭니다. 이러한 유형의 코드는 읽기 쉽습니다.

이제 VBA에서 전역 변수를 사용할 때의 단점에 대해 논의해 보겠습니다.

VBA에서 전역 변수의 단점

전역 변수와 관련된 단점은 다음과 같습니다.

  1. 변수가 명시적으로 정의되기 때문에 코드 디버깅이 복잡합니다.
  2. 한 지점에서 변수의 사소한 변경은 변수와 관련된 모든 지점의 변경을 의미하며 VBA 코드의 기능을 저하시킵니다.
  3. 전역 변수는 상위 모듈에 종속되며 동일한 VBA 코드 내에서 여러 모듈이 사용되는 경우 매번 각 모듈을 다시 설계해야 합니다.

관련 문장 - VBA Variable