VBA Long (예제) | Excel VBA의 긴 데이터 형식에 대한 단계별 가이드

VBA에서 Long 데이터 유형이란 무엇입니까?

Long은 숫자 값을 저장하는 데 사용되는 VBA의 데이터 유형입니다 . 우리는 정수도 숫자 값을 보유하고 있지만 Long 데이터 유형의 경우 long 데이터 유형의 경우 데이터 저장 범위가 매우 크기 때문에 정수와 다릅니다. 10 진수 값도 보유 할 수있는 데이터 유형, 이것은 내장 된 데이터 유형입니다.

이름에서 알 수 있듯이 “Long” 은 큰 가치를 담고 있어야합니다. "Long"은 VBA Excel의 숫자 데이터 유형입니다.

Excel VBA의 긴 데이터 형식은 양수에 대해 0에서 2, 147, 483, 647 사이의 값을 보유 할 수 있으며 음수의 경우 0에서 -2, 147, 483, 648까지 보유 할 수 있습니다.

VBA Long 데이터 유형에는 컴퓨터의 4 바이트 메모리 저장 공간이 필요합니다. 이는 이중 정수 데이터 유형 가변 메모리 (2 바이트)와 이중 데이터 유형 가변 메모리 (8 바이트)의 절반입니다.

짧은 경력에서 VBA Long 데이터 유형의 한계를 완전히 활용하려는 시나리오를 본 적이 없습니다. 그러나 나는 그것을 더 잘 이해하기 위해 몇 가지 예를 보여줄 것입니다.

VBA Long 데이터 유형의 예

다음은 Excel VBA Long 데이터 유형의 예입니다.

이 VBA 긴 데이터 형식 Excel 템플릿은 여기에서 다운로드 할 수 있습니다. – VBA 긴 데이터 형식 Excel 템플릿

VBA 긴 예 # 1

변수 데이터 유형을 "Long"으로 선언하자마자 -2, 147, 483, 648에서 2, 147, 483, 648까지 값을 할당 할 수 있습니다.

예를 들어 변수를 long 데이터 유형으로 선언하십시오.

암호:

 Sub Long_Example1 () Dim k As Long End Sub 

값을 워크 시트의 총 행 수로 지정해 보겠습니다.

Excel 워크 시트 코드에서 총 개수 행을 얻으려면 "행. 카운트"

암호:

 Sub Long_Example1 () Dim k As Long k = Rows.Count End Sub 

이제 메시지 상자에 값을 표시하십시오.

암호:

 Sub Long_Example1 () Dim k As Long k = Rows.Count MsgBox k End Sub 

이 코드를 실행하고 워크 시트의 총 행 수를 확인합니다.

워크 시트에 100 만 개 이상의 행이 있다고합니다.

이제 더 나은 이해를 위해 데이터 유형을 LONG에서 INTEGER로 변경하겠습니다.

암호:

 Sub Long_Example1 () Dim k As Integer k = Rows.Count MsgBox k End Sub 

VBA 코드를 실행하면 "Overflow"라는 오류 메시지가 표시됩니다.

데이터 유형 "Integer"가 -31768에서 32767 사이의 값만 보유 할 수 있기 때문에 VBA에서이 오류가 발생한 이유입니다. 이 경우에“Rows. Count "는"integer "변수의 한계를 초과하는 수를 반환합니다.

32767 만 저장할 수있는 변수에 1 백만 이상의 값을 할당하면 여기서 오버플로 오류가 발생합니다.

VBA 긴 예 # 2

긴 변수를 사용하여 마지막 행 찾기

워크 시트에서 마지막으로 사용 된 행을 찾는 것이 코딩에서 가장 중요합니다. 워크 시트에서 마지막으로 사용 된 행을 찾으려면 변수를 선언해야합니다. 변수를 선언하고 데이터 유형을 할당하려면 상식이 필요합니다.

아래 이미지와 같이 데이터 끝이 25000 행이라고 가정합니다.

이제 마지막으로 사용 된 행 번호가 25000이라는 것을 알고 있습니다.이를 위해 "INTEGER"데이터 유형이 마지막 행을 제공 할 수 있으므로 "LONG"데이터 유형이 필요하지 않습니다.

정보는 아래 코드를 참조하십시오.

암호:

 Sub Long_Example1 () Dim k As Integer k = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox k End Sub 

이 코드를 실행하면 현재 작업중인 워크 시트의 마지막으로 사용 된 행 번호를 얻을 수 있습니다.

코더로서 미래에 갖게 될 데이터의 크기를 아는 것이 중요합니다. 현재 데이터가 25000 번째 행에서 끝날 수 있지만 데이터가 "Integer"제한 (예 : 32767)을 초과하면 오버플로 오류가 발생합니다.

예를 들어 데이터를 32768 번째 행으로 늘립니다.

이제 동일한 코드를 다시 실행하면 값을 얻지 못하고 아래와 같은 오류가 발생합니다.

한도를 "Integer"값의 한도를 1만큼 늘렸으므로 오버플로 오류가 발생했습니다.

따라서 데이터 유형을 변수에 할당하기 전에 데이터 크기를 아는 것이 중요합니다. 향후 데이터 크기를 고려하지 않고 변수를 "LONG"으로 선언하는 것이 항상 더 나은 옵션입니다.

Excel VBA Long 변수의 대안

long 변수의 한계보다 더 많은 값을 유지하려면 어떻게해야할지 이미 생각하고 계실 것입니다. 이를 위해서는 VBA“String”또는“Variant”와 같은 다른 데이터 유형을 사용해야합니다.

숫자 2147483647을 넘는 순간 LONG 데이터 유형의 VBA에서 오버플로 오류가 발생합니다. 이 숫자보다 더 많이 저장하려면 "String"또는 "Variant"데이터 유형을 사용해야합니다.

문자열

암호:

 Sub Long_Example2 () Dim k As String k = 2147483648 MsgBox k End Sub 

변형의 경우

암호:

 Sub Long_Example2 () Dim k As Variant k = 2147483648 MsgBox k End Sub 

위의 코드를 실행하면 언급 된 번호가 표시됩니다.