본문 바로가기
excel VBA

엑셀 변수와 상수

by 퍼포먼스마케팅코더 2023. 8. 30.
반응형

변수와 상수

변수는 프로그램에서 데이터를 저장하는 장소이다. 말 그대로 변수는 값 변경이 가능하다. 처음에 입력된 값이 변하지 않는 수도 있다. 그 수는 상수이다. 변수는 데이터 종류(data type)에 따라 여러 가지로 구분하여 사용한다.

종류와 메모리 크기, 값의 범위가 다양한 데이터 종류는 용도에 적절하게 사용하면 메모리 사용양을 줄일 수 있다.

변수 선언

우리는 이미 전 장에서 변수를 선언하고 사용했다. 아래 코드는 등호(=)를 기준으로 오른쪽에서 계산된 결괍를 왼쪽에 저장했다. 여기서 myVar이 계산결과를 저장하는 변수이름이다.

myVar = InputBox(Prompt:="숫자를 입력하세요.", Default:="100", Title:="홀수, 짝수 판별")

변수는 데이터 종류(data type)에 따라 여러 가지로 구분하여 사용한다. 그 이유는 종류와 메모리 크기, 값의 범위가 다양한 데이터 종류는 용도에 적절하게 사용하면 메모리 사용양을 줄일 수 있다.

다음은 데이터 형태와 종류 그리고 표현 가능한 범위이다.

데이터 종류메모리 크기자료 형태값의 범위
Byte 1 bytes 정수 0 ∼ 255
Boolean 2 bytes 논리 TRUE, FALSE
Integer 2 bytes 정수 -32,768 ∼ +32,767
Long 4 bytes 정수 -2,147,483,648 ∼ 2,147,483,647
Single 4 bytes 실수 -3.4e38 ∼ +3.4e38
Double 8 bytes 실수 -1.8e308 ∼ +1.8e308
Currency 8 bytes 통화 -922,337,203,685,477.5808 ∼ 922,337,203,685,477.00
Date 8 bytes 날짜 1st January 100 ∼ 31st December 9999
Object 4 bytes 개체 Reference
String varies 문자 고정 문자는 65,500 문자, 변동 문자는 2 billion 문자
Variant varies 가변형 숫자는 Double, 문자는 String

변수 선언은 Dim 키워드를 사용한다. 데이터 타입 변수의 사용방법은

Dim varname[([subscripts])] [As type] [, varname[([subscripts])] [As type]] . . .

이다.

  • Dim은 필수 키워드이고 반드시 사용하는 요소는 varname(변수 이름)이다. [subscripts]는 배열에서 참조번호이다. 배열은 동일한 자료를 여러 개 선언할 때 사용한다.
  • As type은 사용할 데이터 종류이다.
  • 데이터 종류를 생략하면 기본값은 Variant이다.
  • 변수가 속한 해당 범위에서 동일한 변수명은 존재할 수 없다. 이 규칙을 어기면 에러가 발생한다.
  • 변수 이름은 식별자 규칙으로 정한다.

변수 선언 예

다음은 세 개 변수를 선언하는 예이다.

Dim myVar, nextVar, thirdVar

다음은 자료 종류 String인 변수를 선언하는 예이다.

Dim myAnswer As String

다음은 여러 개의 정수형(integer) 변수를 선언하는 예이다.

Dim x As Integer, y As Integer, z As Integer

다음은 Variant 변수 2개, Integer 변수 1개를 선언하는 예이다. x, y 변수는 Variant, z 변수는 Integer 자료형이다.

Dim x, y, z As Integer

상수 선언

상수는 변경할 수 없는 값을 선언한다. 다음은 상수 선언 방법이다.

Const constname = value

상수 선언 방법은 변수와 거의 동일하다. 차이점으로 상수 선언은 상수명에 반드시 값을 배정(assignment)한다. Const는 상수 선언 키워드이고 constname 는 사용할 상수명이며 value 상수명에 배정할 값이다. 다음 보기는 상수를 선언한다.

상수 선언 예

Const iMaxClient = 100
Const iMinClient = 2

상수 iMaxClient에 100, iMinClient에 2를 배정하였고 이 값은 변경할 수 없다.

배열 선언

배열 변수는 한 번에 동일한 데이터 형태를 여러 개 만든다 배열 변수 선언은

Dim myArray() AS Integer

와 같이 선언한다. 위 보기는 정수형 배열을 선언하였으니 정수형 데이터를 여러 개 사용할 수 있다.

변수에 값 배정

변수 선언은 변수를 사용하겠다고 변수를 만든 것이고, 선언한 변수에 값을 넣는 것을 배정(asign)이라고 한다. 변수에 값 배정은

변수이름 = 값

을 입력한다. 만일 Integer 형 변수 i에 20 배정은

i = 20

이다. Object 데이터 타입은 변수에 값 배정이 다른 자료 종류와 약간 다르다. Object 변수의 값 배정은 Set 문을 사용한다. 사용방법은

Set 변수이름 = 배정한 개체 참조
Set 변수이름 = New 개체

이다. 이미 선언하고 배정된 개체 참조 변수명이 yourObject이면

Set myObject = yourObject

이다. 한 번에 개체 변수 생성과 배정은

Set myObject = new Object

이다. 변수는 데이터 종류를 선언없이 사용할 수 있다. 즉 변수는 프로시저 만들다가 중간에 데이터 종류와 Dim 문 없이

Copy변수이름 = 변수값

로 선언하여 사용할 수 있다. 그런데 다른 프로그래밍 언어는 변수 선언없이 사용하면 에러가 발생한다. 그렇기 때문에 다른 프로그래밍 언어를 배운 사람은 프로시저 중간에 변수 선언하면 코드 분석에 혼돈할 수도 있다. 반드시 변수 선언이 필요하게 설정하려면 모듈 처음에

Option Explicit

를 입력한다. 이후 변수 선언없이 변수에 값을 배정하면 에러가 발생한다.

반응형

'excel VBA' 카테고리의 다른 글

엑셀 VBA 배열 사용법  (0) 2023.08.30
엑셀 VBA 문장 작성  (0) 2023.08.30
엑셀 배열함수와 배열수식 기초 및 사용법  (0) 2023.08.30
엑셀 배열 이해  (0) 2023.08.30
엑셀 VBA 셀 개체  (0) 2023.08.30

댓글