EXCEL

Excel VBA 튜토리얼 파트 2 - VBA 변수 & 상수입니다.

junghasai 2019. 11. 7. 11:50

VBA에서 모든 프로그래밍 언어에서와 같이 변수 및 상수는 값을 나타내는 이름입니다.

이름에 의해 제안된 대로 변수의 값은 변경될 수 있는 반면 상수는 일반적으로 고정된 값을 가집니다.
예를 들어 상수 "Pi"를 사용하여 3.14159265 값을 저장할 수 있습니다...

"Pi" 값은 프로그램 과정 내내 변경되지 않지만 사용하기 쉽도록 이 값을 상수에 저장하는 것이 유용합니다.
또한 "sVAT_Rate"라는 변수를 사용하여 구매한 제품에 대해 지불될 VAT 비율을 저장할 수 있습니다.

sVAT_Rate의 값은 상품의 종류에 따라 다를 수 있습니다.

데이터 유형입니다.
모든 변수와 상수는 데이터 유형을 가집니다.

다음 표에서는 각 유형 및 가능한 값의 범위에 대한 설명과 함께 VBA 데이터 유형을 보여 줍니다.

메모리 설명 값 범위의 데이터 유형 크기입니다.
바이트 1바이트는 서명되지 않은(음수 아님) 번호를 나타냅니다.

이 숫자는 이진 데이터 0 ~ 255에 종종 사용됩니다.
부울 2바이트 단순 참 또는 거짓 값입니다. 참 또는 거짓입니다.
정수 2바이트입니다. 정수(십진수 없음) -32,768 ~ +32,767입니다.
긴 4바이트 길이 정수(십진수 없음) - 2,147,483,648 ~ +2,147,483,647
단일 4바이트 단정밀 부동 소수점 번호 -3.4e38 ~ +3.4e38입니다.
이중 8바이트 이중 정밀 부동 소수점 -1.8e308 ~ +1.8e308 번호

통화 8바이트 -922,337,203,685,477.5808~+922,337,203,685,477.5807의 소수 자릿수를 갖는 부동 소수점 번호입니다.
Date 8바이트 Date & Time - Date 유형은 내부적으로 부동 소수점 번호로 표시됩니다.

숫자의 정수 부분은 날짜를 나타내고, 소수 부분은 시간을 나타냅니다. 100년 1월 1일 ~입니다.
9999년 12월 31일 날입니다.
개체 4바이트 개체에 대한 참조입니다. 모든 개체입니다.
언급
문자열은 다양합니다. 일련의 문자를 보관합니다. 문자열 유형은 고정 길이 또는

가변 길이를 가지도록 정의할 수 있지만, 일반적으로 고정 길이 - 최대 65,500까지 지정할 수 있습니다.
성격.
변수 - 최대 약입니다.
20억자요
다양성은 날짜, 부동 소수점 번호 또는 숫자를 포함할 수 있습니다(와 동일).
이중 유형입니다.
문자열 - 와 동일합니다.
문자열 유형 문자열. 따라서 예상되는 데이터 유형을 모를 때 사용해야 합니다.

위 표에서는 특정 데이터 유형(예: 롱이 아닌 정수, 더블이 아닌 싱글)을 사용하여 메모리에 저장할 수 있습니다.

그러나 '작은' 데이터 유형을 사용하려는 경우 코드가 선택한 데이터 유형에서 처리할 수 있는 값보다 큰 값이 발생하지 않도록 해야 합니다.


변수 및 상수를 선언합니다.
변수나 상수를 사용하기 전에 선언할 수 있습니다. 이 작업은 다음과 같이 매크로에 간단한 코드 라인을 추가하여 수행할 수 있습니다.
변수를 선언하려면 다음을 수행합니다.
Dim Variable_Name as Data_Type입니다.
위의 코드 라인에서 Variable_Name은 실제 변수 이름으로, Data_Type은 위에 나열된 데이터 유형 중 하나로 대체해야 합니다. 예를 들어 다음과 같습니다.
sVAT_Rate를 단일 값으로 Dim니다.
Dim I as 정수입니다.
상수는 선언할 때 항상 값을 할당해야 한다는 점을 제외하고 유사한 방식으로 선언됩니다. VBA에서 상수 선언의 예는 다음과 같습니다.
Const iMaxCount = 5000입니다.
Const iMaxScore = 100입니다.
변수를 선언해야 하는 이유입니다.
Excel은 변수를 강제로 선언하지 않습니다. 기본적으로 Excel의 모든 변수는 Variant 유형을 가지며 숫자 또는 텍스트를 할당할 수 있습니다.
따라서 프로그램 진행 중 임의의 시점에서 임의의 변수 이름을 사용할 수 있으며(선언되지 않은 경우에도), Excel은 변종 유형을 해당 이름에 할당합니다. 그러나 다음과 같은 이유로 변수를 선언하지 않는 것은 좋지 않습니다.

1. 메모리 & 계산 속도: 변수를 데이터 유형으로 선언하지 않으면 기본적으로 변수 유형이 변합니다. 이는 다른 많은 데이터 유형보다 더 많은 메모리를 차지합니다.

변수당 몇 개의 추가 바이트는 많은 메모리가 아닌 것처럼 보일 수 있지만 프로그래머가 프로그램에 수천 개의 변수를 갖는 것은 드문 일이 아닙니다(특히 어레이를 사용하기 시작할 때). 따라서 정수 또는 싱글 대신 변수를 저장하는 데 사용되는 추가 메모리가 크게 추가될 수 있습니다.

또한 다른 데이터 유형보다 다양한 데이터 유형을 처리하는 데 더 많은 시간이 소요되므로 불필요한 수천 개의 Variant 데이터 유형이 있는 경우 계산 속도가 느려질 수 있습니다.


2. 'Typo' Bugs 방지: 변수를 항상 선언하는 경우 VBA 옵션 명시적(아래 참조)을 사용하여 강제로 변수를 선언할 수 있습니다.

이렇게 하면 실수로 변수 이름을 잘못 입력하여 코드에 버그를 도입할 수 없습니다. 예를 들어 "sVAT_Rate"라는 변수를 사용하고 있을 수 있으며 이 변수에 값을 할당할 때 실수로 "VATRate = 0.175"를 입력할 수 있습니다. 이때부터 변수 "sVAT_Rate"의 값이 0.175가 될 것으로 예상하지만 물론 그렇지 않습니다.