변수의 크기를
정해두십시오 앞서
변수란 컴퓨터가
정보를 저장하고 검색하기 위한 메모리 상의
공간이라고 이해하시란 말씀을
드렸습니다. 여러분이 가족 여행을 떠났다면,
식구들이 모두 안락한 휴식을 취할 수 있을 만큼의
공간을 가진 방을 필요로 할 것입니다.
여러분이 학생들을 데리고 수학여행을 떠난
것이라면, 많은 학생들의 숙식할 수 있는 아주
여러개의 방을 확보해야 할 것입니다. 어쩌다,
길을 나서 하룻밤을 잠깐 묵어가는 것이라면,
비좁지만 않은 작은 방이라도 만족할 수 있을
것입니다. 이 모든 경우에, 여러분은 합당한 비용을
지불해야 하며, 필요 이상의 경비를 지출하기를
꺼려할 것이고, 혹 마땅한 대가를 치루지 않아
잠자리에서 쫓겨나는 불상사를 당하지 않도록
조심도 해야 할 것입니다. 여러분이 컴퓨터의
메모리 공간을 아주 알맞게 이용할 수 있도록
VBA는 몇 가지 크기의 방들을 제공합니다. 어떤
방은 아주 특이해서, 여러분이 몇 명이나
투숙할 지 예측할 수 없을 때에도, 적절하게 그
크기를 조정할 수 있도록 아주 여유 있는 방을
제공해 주기도 합니다. 그러나 물론, 이런
방들은 아주 비쌉니다.(Variant라는
이 융통성 있는 데이터 타입은 편리하지만 꼭
필요할 때만 사용하도록 하십시오) 아래
그림은 VBA에서 제공하는 변수의 유형들의
목록입니다. 이제 여러분은 아래 열거한 방
가운데 적당한 것들을 선택해, 여러분이
작업시키고자 하는 데이터를 그 방에 둘 수
있을 것입니다.
우리가 컴퓨터를 이용하는 대부분의 이유는
어떤 데이터들을 조작하기 위한 것입니다.
변수란, 이런 데이터의 조작을 편리하게 하기
위해 사용하는 것입니다. 다음은 모두 엑셀 도움말로부터
각 데이터의 유형에 대한 정보를 가져온
것입니다.
Byte 변수는
0부터 255까지 값의 범위를 가지는 부호없는 단일한
8비트(1바이트) 숫자로 저장됩니다.
Byte 데이터
형식은 이진 데이터를 저장할 때 사용합니다.
Boolean
변수는 16비트(2바이트) 숫자로 저장되지만,
오직 True 혹은 False 값만 가질 수
있습니다. Boolean 변수는 Print를
사용할 때는 True또는 False 로,
Write #를 사용할 때는 #TRUE# 또는 #FALSE# 로
표시합니다. Boolean 변수는 두 상태 중 한
가지를 지정하기 위해 True와 False 키워드를
사용합니다.
다른 숫자
형식이 Boolean값으로 변환될 때 0은 False로,
그 밖의 다른 값들은 True로 변환됩니다. Boolean값이
다른 데이터 형식으로
변환될 때 False는 0으로 True는 -1로
변환됩니다.
Integer
변수는 -32767부터 32767까지의 범위를 갖는16비트(2바이트)
숫자를 저장합니다. Integer용 형식
선언 문자는 백분율 기호(%)를 사용합니다.
Integer 변수는 나열된 값을
표현하는 데에도 사용할 수 있습니다. 나열된
값은 정수의 유한 집합을 포함하며, 각 값은
사용된 구문에서 유용하게 사용됩니다. 예를
들면 검은색 = 0, 흰색 = 1처럼 나열된 값은
주어진 범위값 중 하나를 선택하여 사용할 때
편리합니다. 모든 나열된 값에 대해 Const
문을 이용해서 상수로
정의하는 것이 좋습니다.
Long(long
integer) 변수는 -2,147,483,648부터 2,147,483,647까지의
값을 사용할 수 있으며, 32비트(4바이트) 숫자로
저장됩니다. Long용 형식
선언 문자는 앰퍼샌드 기호(&)를
사용합니다.
Single(단정도
부동 소수점) 변수는 음수인 경우 -3.402823E38부터
-1.401298E-45까지, 양수인 경우 1.401298E-45부터
3.402823E38까지 범위 값으로 IEEE 32비트(4바이트)
부동 소수점 숫자를 저장합니다. Single용 형식
선언 문자는 느낌표 기호(!)를 사용합니다.
Double(배정도
부동 소수점) 변수는 IEEE 64비트(8바이트)
부동 소수점 숫자를 저장하며, 그 값의 범위는
음수인 경우 1.79769313486232E308부터
-4.94065645841247E-324까지이며 양수인 경우
4.94065645841247E-324부터 1.79769313486232E308까지입니다.
Double용 형식
선언 문자는 숫자 기호(#)를 사용합니다.
Currency
변수는 정수 부분 15자리와 소수점 이하 4자리의
고정 소수점을 주기 위하여 10,000 단위로
구분한 정수 형식의 64 비트(8바이트) 숫자로
저장됩니다. 이 값은 922,337,203,685,477.5808부터
922,337,203,685,477.5807까지 표현이 가능합니다. Currency의
형식 선언 문자는
at 기호(@)입니다.
Currency 데이터
형식은 정확성이 필요한 고정 소수점
계산과 돈 계산 등에 유용합니다.
Date 변수는
IEEE 64비트(8바이트) 부동 소수점 숫자로 저장되며,
100년 1월 1일부터 9999년 12월 31일까지의 날짜와
0:00:00부터 23:59:59까지의 시간을 표현할 수 있습니다.
인식 가능한 날짜 형식의 모든 문자는 Date
변수에 할당될 수 있습니다. 날짜
리터럴은 #January 1, 1993# 또는 #1
Jan 93# 등과 같이 기호(#)를 사용해야
합니다.
Date 변수는 날짜의 경우 컴퓨터가
인식하는 간단하게 표시 날짜 형식에 따라
나타냅니다. 시간의 경우 12 시간 혹은 24
시간의 시간 형식으로 나타냅니다.
다른 숫자
형식을 Date로 변환할 경우 정수 부분의
값은 날짜 정보를 나타내고 소수점 아래의
값은 시간 정보를 나타냅니다. 자정은 0으로,
정오는 0.5로 표시하며, 음수는 1899년 12월 30일
이전의 날짜를 나타냅니다.
문자열에는 가변 길이와 고정 길이
문자열의 두 종류가 있습니다.
String
문자의 코드 범위는 0부터 255까지이며, 문자
집합에서 앞의 128개 문자(0부터 127까지)가 표준
U.S. 키보드 글자와 기호 문자를 나타냅니다.
앞의 128개 문자는 ASCII
문자 집합에서 정의한 것과 동일하며, 뒤의
128개 문자(128부터 255까지)는 국제 기호, 강세,
통화 표시 및 분수 등과 같은 특수 문자를
나타냅니다. String용 형식
선언 문자는 달러 기호($)를 사용합니다.
Object
변수는 개체를 참조하는 32비트(4바이트)
주소를 저장하며, Object로 선언된 변수는 Set
문을 사용하여 지정된 개체를 참조할 수 있습니다.
메모 Object
형으로 선언된 변수는 어떠한 개체라도 참조할
수 있지만, 그 변수에 의해 참조되는 개체 바인딩은
런타임 바인딩이므로
속도가 항상 느립니다. 빠른 실행
모드 바인딩을 하려면 특정 클래스
이름으로 선언된 변수에 개체 참조를 지정합니다.
Variant 데이터 형식은 Dim, Private,
Public 또는 Static과 같은 문을
사용하여 다른 형식으로 명시적으로 선언되지
않은 모든 변수의
데이터 형식입니다.
Variant 데이터 형식은 형식
선언 문자가 없습니다.
Variant는 고정 길이 String
데이터를 제외한 모든 종류의 데이터를 처리할
수 있는 특별한 데이터 형식입니다. Variant
형식은 이제 사용자
정의 형식을 지원합니다. Variant는 Empty,
Error, Nothing, Null
등의 특정한 값을 가질 수 있습니다. VarType
함수나 TypeName 함수를 사용하면 Variant로
선언된 데이터가 어떻게 처리되는지 결정할 수
있습니다.
숫자 데이터의 경우 음수는
-1.797693134862315E308부터 -4.94066E-324까지, 양수는
4.94066E-324부터 1.797693134862315E308까지 표현할 수
있습니다. 일반적으로 숫자 Variant 데이터는
Variant 안에서 고유의 데이터 형식을 계속
갖게 됩니다. 예를 들면 integer를
Variant에 할당하면 이후 연속된 연산은 Variant를
Integer로 처리합니다. 그러나 Byte,
Integer, Long,
Single 값의 가진
Variant에서 산술 연산을 실행한 결과값이
원래의 데이터 형식의 일반적인 값보다 클
경우 그 결과값은 Variant안에서 더 큰 데이터
형식으로 변환됩니다. Byte는Integer로
변환되고, Integer는 Long으로, Long과
Single은 Double로
변환됩니다. Currency,
Decimal 그리고
Double 값을 가진 Variant 변수들이 각각
범위를 초과하면 오류가 발생합니다.
Variant 데이터 형식은 더욱
유연하게 데이터를 다루는 작업을 해야 하는
곳에서 사용할 수 있습니다. Variant 변수의
내용이 숫자라면 아래의 예와 같이 상황에
따라 숫자를 문자열로 표현할 수도 있고 또는
실제값이 될 수도 있습니다.
Dim MyVar As Variant
MyVar = 98052
위의 예제에서 MyVar 변수는
실제 값인 98052 를 숫자로 나타내고
있습니다. 산술 연산자는 Variant 변수가
숫자값 또는 숫자로 변환될 수 있는 문자열 데이터를
포함하고 있다고 가정하고 작업을 수행합니다.
만약 MyVar 변수값을 숫자를 포함하고
있는 또 다른 Variant 변수 혹은 숫자
형식 변수에 더하기 위해 "+"
연산을 한다면 그 결과값은 산술 합계가
됩니다.
Empty
값은 Variant 변수가 초기화되지 않았음(초기값이
할당되지 않았음)을 의미합니다. Empty
값을 가진 Variant 변수는 산술적으로
사용할 때는 0을 의미하고, 문자열 의미로
사용할 때는 크기가 0인 문자열("")을
의미합니다.
Empty와 Null을
혼동하지 마십시오. Null은 Variant
변수가 의도적으로 유효하지 않은 값을 가지고
있다는 것을 의미합니다.
Variant에서 Error는 프로시저에서
오류가 발생한 것을 나타내는 특별한 값입니다.
그러나 다른 오류와는 달리 보통 프로그램 단위의
오류 처리는 발생하지 않으며, 발생하는
오류값에 따라 다른 방법으로 오류를 처리할
수 있게 합니다. CVErr 함수를 사용하여
실제값을 오류값으로 변환하면 Error 값이
만들어집니다.
읽어도 무슨 말씀이신지 모르시겠구요...아니,
읽지 않고 그냥 넘어오셨다구요^^* 그래도 다
괜찮습니다.
이것만 기억해 두십시오. 1만명을
수용할 수 있는 경기장에 단 한 사람만 들어가
운동한다면 그 얼마나 낭비이겠습니까? 두
사람이 자면 딱 좋을 방에 수 십 명을 들여넣어
놓으면 얼마나 소란스럽겠습니까? 변수를
선언한다는 것은 여러분이 일을 시켜야 할 데이터들을
위해 알맞은 크기의 방을 골라 주는 일이랍니다.
적재적소(適在適所) 여러분도 여러분에게
알맞은 자리에 가 일하고 싶으시듯이,
여러분이 일을 시키려는 컴퓨터의 데이터에도
알맞은 자리를 마련해 주어야 마땅하답니다^^
김춘수의 시 꽃을 그래 이 자리에 인용하는
것은 우스꽝스럽기도 하지만, 빛깔과 향기에
알맞는 이름을 불러주고, 불리우시길...!
내가 그의 이름을 불러주기 전에는
그는 다만
하나의 몸짓에 지나지 않았다.
내가 그의 이름을 불러주었을 때
그는 나에게로 와서 꽃이 되었다.
내가 그의 이름을 불러준 것처럼
나의 이 빛깔과 향기에 알맞는
누가 나의 이름을 불러다오
그에게로 가서 나도
그의 꽃이 되고 싶다.
우리들은 모두 무엇이 되고 싶다.
너는 나에게 나는 너에게
잊혀지지 않는 하나의 눈짓이 되고 싶다
|