본문 바로가기

엑셀/VBA

엑셀 VBA 변수와 상수에 대하여 알아보기

반응형

프로그래밍에서는 항상 변수와 상수가 존재합니다. 이는 프로그래밍을 하는데 기본적으로 알아야 할 개념 중에 하나입니다. 일반적으로 알고 있듯이 상수는 값이 변하지 않는 값을 말하며 변수는 입력되는 값에 따라 변화되는 값을 말합니다.

즉 상수는 값이 한 번 정해지면 프로그램이 끝날때까지 그 값을 그대로 유지하지만, 변수는 입력되는 대로 값이 변경되는 것입니다.

 

1. 변수 선언

  변수 선언은 변수의 데이터 형식을 지정하는 것입니다. 변수 선언 없이 사용하게 되면 해당 변수의 데이터 형식은 가변형이 되어 입력되는 값에 따라 데이터 형식이 정해짐으로 사용하기에는 편리하지만 메모리 공간을 많이 차지하게 되므로 프로그램 속도를 저하시키는 원인이 됩니다. 그러므로 변수를 사용할 때는 사용 목적에 맞게 데이터 형식을 지정하여 사용하는 것이 좋습니다.

 

변수의 데이터 형식 및 설명은 아래 표를 참조하세요.

데이터 형식 VBA 코드 저장 가능한 값 범위
Byte 정수형 Byte 0 ~ 255 정수
정수형 Integer -32,768 ~ 32,767 (정수)
Long 정수형 Long -2,147,483,648 ~ 2,147,483,647 (정수)
단정도 부동 소수점형 Single -3.402823E38 ~ -1.401298E-45 (음수인 경우)
1.401298E-45 ~ 3.402823E38 (양수인 경우)
배정도 부동 소수점형 Double -1.79769313486231E308 ~ -4.94065645841247E-324 (음수인 경우)
4.94065645841247E-324 ~ 1.79769313486231E308 (양수인 경우)
문자형 String 약 20Byte 정도의 문자열 (가변 길이 문자열인 경우)
약 64KByte 정도의 문자열 (고정 길이 문자열인 경우)
논리형 Boolean True / False
통화형 Currency -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807
날짜형 Date 100년 1월 1일 ~ 9999년 12월 31일 (날짜인 경우)
0:00:00 ~ 23:59:59 (시간인 경우)
개체형 Object 모든 개체 참조
가변형 Variant 배정도 부동 소수점형과 같은 범위 내의 숫자 (숫자인 경우)
문자형과 같은 정도의 문자열 (문자인 경우)

변수 선언 방법은 다음과 같습니다.

 

   Dim 변수 이름 As 데이터 형식

 

         ☞ 변수를 데이터 형식인 주어진 변수 이름으로 선언합니다.

 

엑셀의 Visual Basic Editor를 열어서 아래와 같이 코드를 입력합니다. Visual Basic Editor 열기와 프로시저 입력에 대해서는 이전 글을 참조하시기 바랍니다.

 

   Public Sub 정수형()
       Dim i As Integer
       i = 80
       Range("B2").Value = "i : "
       Range("C2").Value = i
   End Sub

 

코드를 입력하고 실행하면 엑셀 시트 B2 셀에는 'i : '이 출력되고, C2 셀에는 '80'이 출력됩니다.

VBA_작성코드_실행결과
[그림 1] VBA코드_실행결과

[그림 1]과 같이 엑셀 시트에 코드 실행결과가 출력되었습니다.

2. 배열 변수 선언

 배열 변수에는 고정 배열 변수와 동적 배열 변수가 있습니다. 

 

 2.1 고정 배열 변수

   고정 배열 변수는 저장 공간 개수가 정해져 있는 배열 변수를 말하며 다음과 같이 선언합니다.

 

       Dim 배열명(저장 공간 개수) As 데이터 형식

 

            ☞ 데이터 형식인 배열을 저장 공간 개수만큼 생성하여 이름을 배열명으로 선언합니다.

   

   i라는 정수형 고정 배열 변수를 5개의 저장 공간으로 선언하려면,

더보기

       Dim i(5) As Integer

   라고 코딩하면 됩니다.

 2.2 동적 배열 변수

   VBA 프로그램을 작성하다 보면 배열을 선언할 때 저장 공간 개수를 처음부터 정할 수 없는 경우가 발생합니다. 이런 경우 프로그램을 시행하는 도중에 저장 공간 개수가 결정 가능해집니다. 이때 동적 배열 변수로 선언한 후 나중에 저장 공간 개수를 결정하는 방식으로 프로그래밍할 수 있습니다.

 

동적 배열 변수를 선언하는 방식은 다음과 같습니다.

 

       Dim 배열명( ) As 데이터 형식

        :

       ReDim 배열명(저장 공간 개수)

        :

 

            ☞ 먼저 데이터 형식인 배열을 배열명으로 선언하고 이후에 ReDim 문을 사용하여 배열의

             저장 공간 개수를 선언합니다.

 

   i라는 정수형 동적 배열 변수를 5개의 저장 공간으로 선언하려면,

더보기

       Dim i( ) As Integer

        :

      ReDim i(5)

   라고 코딩하면 됩니다.

반응형