1. 변수 및 상수
- 변수 : 변하는 값을 저장할 수 있는 이름이 주어진 기억장소
- 상수 : 변수처럼 변하는 값이 아닌 항상 같은 값을 저장하는 기억장소
2. 변수(상수) 선언
- 변수나 상수를 사용하려면 미리 코딩 창의 Sub Procedure나 모듈 상단에 사용할 변수나 상수를 선언해 놓아야 함
- 선언 형식 : 키워드 변수(상수)명 As 데이터 형식
▷ 키워드 : Dim, Public, Private 등으로 지정 가능
▷ 변수(상수명) : 첫 문자는 반드시 영어 또는 한글(공백, 마침표, 특수문자 사용불가)
▷ 데이터 형식 : 생략 시, 모든 형식의 데이터를 저장할 수 있는 Variant 데이터 형식이 자동으로 지정
▷ 예시 : Dim i AS Integer
3. 키워드 및 데이터 형식
3-1) Dim
- Dim은 변수를 프로시저 내부나 모듈부에 선언 가능
- 선언된 위치에 따라 해당 변수를 사용할 수 있는 범위가 달라짐
3-2) Private, Public
- 모듈부에만 선언 가능
- Private : 해당 모듈의 전체 프로시저에서 사용 가능하나, 다른 모듈에서는 사용불가
- Public : 전체 모듈의 모든 프로시저에서 사용 가능
3-3) 데이터 형식
구분 | 형식 | 크기 | 범위 |
논리 | Boolean | 2 | TRUE, False |
숫자 | Byte | 1 | 0~255 |
숫자 | Integer | 2 | -32,768~32,767 |
숫자 | Long | 4 | -2,147,438,648~2,147,438,648 |
숫자 | Currency | 8 | -922,337,203,685,477.5808~922,337,203,685,477.5808 |
숫자 | Decimal | 12 | +/-79,228,162,514,264,337,593,543,950,335 (소수점 이하가 없는 경우) +/-7.9228162514264337593543950335 (소수점 아래 28자리) +/-0.0000000000000000000000000001(0이하 가장 작은 수) |
숫자 | Single | 4 | -3.402823E38~-1.401298E-45(음수의 경우) 1.401298E-45~3.402823E38(양수의 경우) |
숫자 | Double | 8 | -1.79769313486232E308~-4.94065645841247E-324(음수) 4.94065645841247E-324~1.79769313486232E308(양수) |
날짜 | Date | 8 | 100년 1월 1일 ~ 9999년 12월 31일 |
문자 | String(가변 길이) | 10 | 0 ~ 20억 개 |
문자 | String(고정 길이) | 문자열 길이 | 1~65536개 |
개체 | Object | 4 | - |
모두 | Variant(문자열) | 22 | String(가변 길이) 데이터 형식과 동일 |
모두 | Variant(숫자) | 16 | Double 형 범위 내의 모든 숫자 |
- 변수 선언 예
예 시 | 설 명 |
Dim i As Integer | 'i'라는 이름의 정수를 저장하는 변수 선언 |
Private 계약일 As Date | 해당 모듈의 모든 프로시저에서 사용할 수 있는 ‘계약일’ 이라는 이름의 날짜를 저장하는 변수 선언 |
Public 매출액 As Double | 모든 모듈의 프로시저에서 사용할 수 있는 ‘매출액’이라는 이름의 숫자를 저장하는 변수 선언 |
Const 할인율 As Single | '할인율' 이라는 이름의 숫자를 저장하는 상수 선언 |
Dim 교통비 | Dim 교통비 As Variant 와 같은 의미로 모든 데이터 형식을 저장할 수 있는 ‘교통비’라는 이름의 변수 선언 |
4. 변수와 상수에 값 할당
4-1) 변수값 할당 형식
변수명 = 할당할 값
▷ 예시
Dim i AS Integer
i =1
i = Activesheet.Range(“A1”).Value
4-2) 상수값 할당 형식
Const 상수명 AS Single = 할당할 값
▷ 예시
Const i AS Single = 1
5. 개체 변수
- 변수에 값이 아닌 개체(셀 범위, 워크시트, 차트 등)를 할당
5-1) 개체 변수값 할당 형식
Dim 변수명 As 개체
Set 변수명 = 개체
▷ 예시(1)
Dim 매출실적 As Range
Set 매출실적 = Activesheet.Range(“A1:E50”)
▷ 예시(2)
Dim Sh1 As Worksheet
Set Sh1 =Worksheets(“실적관리”)
6. 변수의 수명
- 프로시저 실행 시작 → 초기화, 프로시저 종료 → 값을 상실함
- Static 키워드 : 프로시저를 실행해도 변수 값이 초기화되지 않음
7. 시스템 상수 (내장 상수)
- 사용자가 선언하여 사용하는 상수 이외에 VBA와 엑셀에 미리 정의되어 있는 상수
- VBA 상수 : 상수 앞에 ‘vb', 엑셀 개체 상수 :‘xl’가 표시됨
▷ 예) VBA에서 파랑색 사용 : vbBlue, 왼쪽 맞춤 지정 : xlLeft
7-1) Msgbox의 구성 인수
- Prompt : 메시지 박스에 표시할 메시지입력
- Button Type : 메시지 박스에 표시할 버튼의 종류
- Title : 메시지 박스의 제목 표시줄에 표시할 텍스트
- Help File : 도움말 단추를 누를 때 표시할 도움말 파일 세부주소를 명시하는 곳
- Context : 도움말 파일의 연결할 항목 내용 번호
7-2) Button Type 에 사용되는 상수 값
출처: [학습(공부)하는 블로그]