오늘 끝나면
변수와 타입
- ✓변수와 타입의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 변수와이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
Dim — 값을 담는 그릇과 자료형 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
엑셀 VBA · 03
변수와
타입
Dim 으로 값을 담을 그릇을 만든다.
그릇마다 담는 종류가 정해져 있다. 정수, 글자, 소수, 참거짓.
셀 값을 그릇에 담으면 코드에서 마음껏 다룬다.
Dim, 값을 담을 그릇 만들기
변수는 값을 담아두는 그릇이다. Dim 한 줄로 만든다.
Dim 점수라고 쓰면 ‘점수’라는 이름의 빈 그릇이 생긴다.
뒤에 As Integer 를 붙이면 정수만 담는 그릇이 된다.
Dim 점수 As Integer 는 정수를 담을 변수 점수를 선언하는 문장이다.
이름은 마음대로 짓되 한글, 영문, 숫자, 밑줄만 쓸 수 있다.
숫자로 시작하지 못하고, 띄어쓰기도 안 된다.
한 번 만든 그릇은 코드 어디서든 이름으로 꺼내 쓴다.
Dim 점수 As Integer
자료형, 그릇마다 담는 게 다름
As 뒤에 적는 게 자료형이다. 그릇이 무엇을 담을지 정한다.
Integer 는 정수를 담고, Double 은 소수까지 담는다. String 은 글자를 담고, Boolean 은 참(True)과 거짓(False) 둘 중 하나를 담는다.
숫자 그릇에 글자를 넣으려 하면 형 변환 오류가 난다.
자료형을 정해두면 엉뚱한 값이 들어오는 걸 막아준다.
정수 그릇에 88.6 을 담으면 반올림돼 89 로 들어간다.
타입을 알아야 결과가 왜 그렇게 나오는지 보인다.
| As 타입 | 담기는 예 |
|---|---|
| Integer | 89정수만 · 소수는 반올림 |
| Double | 88.6소수까지 그대로 |
| String | "홍길동"글자 · 따옴표로 감싼다 |
| Boolean | True참, 거짓 둘 중 하나 |
타입이 안 맞으면 형 변환 오류가 난다
담고 · 재사용, 직접 굴려 보기
셀 값을 변수에 담고, 타입을 바꿔 차이를 본다.
같은 88.6 이라도 Integer 면 89, Double 이면 88.6, String 이면 "88.6" 으로 담긴다.
여기서 핵심은 = 다.
점수 = Range("A1").Value는 ‘같다’가 아니라 ‘담아라’라는 뜻이다.
오른쪽 값을 왼쪽 그릇에 넣는 대입이다.
정수만. 소수는 반올림된다
Dim 점수 As Integer
점수 = Range("A1").Value
MsgBox 점수A1의 "88.6" 가 Integer 그릇에 정수로 반올림돼 들어간다.
셀 값을 변수로 가져오기
변수가 진짜 쓸모 있어지는 순간은 셀 값을 담을 때다.
Range("A1").Value 는 A1 칸에 적힌 값이다.
이걸 점수 = Range("A1").Value 로 변수에 담는다.
이제 시트를 안 봐도 점수 라는 이름으로 그 값을 계속 쓴다.
한 번 담아두면 여러 줄에서 재사용한다.
점수 * 2, 점수 + 10 처럼 굴리고, 다시 Range("B1").Value = 점수 로 셀에 써넣는다.
셀을 코드로 읽고 쓰는 길은 다음 4강 Range·Cells 에서 더 파본다.
점수 = Range("A1").Value이제 점수 * 2 처럼 코드에서 굴린다
정리, 그릇 · 종류 · 대입
오늘 세 가지를 손에 쥔다. 그릇 만들기, 종류 정하기, 값 담기.
Dim 이름 As 타입 으로 선언하고, 이름 = 값 으로 담고, 이름 으로 꺼낸다.
타입을 알면 값이 어떻게 변환돼 들어가는지 예측된다.
Q. Dim x As Integer 의 뜻은?
정수를 담을 변수 x 를 선언한다.Dim 은 그릇 만들기, x 는 그릇 이름, As Integer 는 정수만 담는 종류다.
이 그릇에 88.6 을 담으면 반올림돼 89 가 들어간다.
Dim 점수 As Integer
점수 = Range("A1").ValueMsgBox 점수 * 2
그릇, 종류, 담기. 이게 변수 전부다