[ 기초 강좌 ]
제 11 강
변수란 무엇인가Ⅰ
Excel의 생명이라고 할 수 있는 변수를
알아봅니다.
이럴 때 필요해요
변수는 수시로 변하는 어떤 값을 말합니다.
이렇게 사용해요
먼저, 아래 그림처럼 표를 작성해봅니다.
그리고, 아래의 수식을 따라 적고 실행해봅니다.
Sub 변수란무엇인가() |
Sheet1의 B7셀에 있는 값은 i라는 그릇에 담아두고,
Sheet1의 B8셀에 있는 값을 j라는 그릇에 담아 둔 후
이 두개의 셀에 있는 값을 곱한 것을 다시 K라는 그릇에
담아 둔 후 B9셀에 k라는 그릇에 담긴 값을 표시하게 한것입니다.
이렇게 하면, 아래와 같은 결과가 나올 것입니다.
Dim은 Dimension의 줄임말로 '변수선언'이라고 합니다.
프로그래밍을 배울 때 가장 신경쓰이지만 또한 가장 중요한 것이 바로 이 변수선언 입니다.
그렇다면, 변수란 무엇이고, 또 이것을 선언한다는 것은 무엇인가?
위의 예에서와 같이 변수라는 것은 "수시로 변화하는 어떤 값을 담아두는 그릇"이라고도 할수 있습니다.
그런데 이그릇에는 사이즈가 정해져 있고, 또 각 사이즈별로 많은 종류의 그릇, 즉 변수가 준비되어 있습니다.
쉽게 설명하자면, 여러분의 집 주방에 있는 그릇들을 한번 떠 올려 보세요.
밥을 담는 밥 그릇, 국을 담는 국 그릇, 반찬 그릇, 간장 종지, 큰 대접 등등
얼마나 많은 그릇들이 있습니까? 그렇지만, 설마 간장을 국 그릇에 부어 놓고
먹는 사람은 없겠지요. 변수도 마찬가지입니다.
각 상황에 맞는 그릇들을 모두 준비해 두었기 때문에 종류가 많은 것입니다.
이해를 돕기 위해, B7 이나 B8 셀에 큰 숫자(예: 100000) 를 입력하신 다음, Alt + F11 키를 눌러서 코드를 다시 실행시켜 보시기 바랍니다.
"오버플로(Overflow)"라는 에러 메시지가 나타 나지요?
이것은 준비한 그릇의 싸이즈보다 더 큰 값이 들어 오니까 넘쳐서 나타 나는 에러입니다.
그럼, 이번엔 모듈시트의 코드창으로 가서 Dim i, j, k As Integer 부분의 Integer 대신에 Double이라고 고쳐 넣고 나서, B7 셀에 100000 이라는 숫자를 입력하신 다음, 다시 실행해 보시기 바랍니다.
이제는 아무리 큰 값을 넣어도 제대로 실행이 되지요?
이것이 바로 변수의 타입, 즉 종류인 것입니다.
(참고로, Integer는 정수형 변수타입이라고 합니다.)
그러면, 또 아래와 같은 의문이 들지 않습니까?
"그렇다면 처음 시작할 때 부터 큰 변수타입으로 선언하면 될텐데 무엇 때문에 작은 변수를 선언하나요?"
라면 하나 끓이는 데 가마솥을 걸어 놓고 끓이는 사람은 없겠지요?
그 이유는 바로, 비경제적이기 때문입니다. 컴퓨터에서 그릇은 메모리와 직결됩니다.
즉, 큰 그릇을 많이 준비하면 할수록 시스템의 성능저하로 연결될 수 있기 때문이지요.
다음은, 다시 아래의 수식을 적어 실행해 보시기 바랍니다.
Sub VolubleTest() Dim i As Integer
|
앞에서 설명드린 바와 같이, 먼저 i 라는 정수형 변수를 선언해 줍니다.
For … Next 구문은 예를 들어,
For i = 1 To 100
.....(기타수식) ...
Next
라고 하게 되면 ".....(기타수식)..." 라는 명령을 1에서 100, 즉 100번 수행하라는 뜻입니다.
따라서, 만약에 For … Next 라는 구문이 없다면 이 경우, 즉 특정영역(A60:A67)에 "변수란 무엇인가"라는 문자값을
출력하려면 어떻게 해야 될까요?
아래와 같이 일일이 각 셀의 값을 모두 지정해 주어야 겠지요?
Cells(60, 1) = "변수란 무엇인가"
Cells(61, 1) = "변수란 무엇인가"
Cells(62, 1) = "변수란 무엇인가"
................
................
Cells(67, 1) = "변수란 무엇인가"
라고 코딩해야 될 것을 아래와 같이 단 한줄의 코드로 처리할 수 있습니다.
Cells(i, 1) = "변수란 무엇인가"
Cells(i, 1), 즉 1열(A열)의 i 행(앞서, For i = 60 To 67 부분에서 정의된 60행 부터 67행 까지) 에 "변수란 무엇인가"라는 문자값을 출력합니다.
즉, 먼저 Dim i As Integer 라고 변수 i 에 대해 정수형 변수타입임을 선언해 준 다음에
For i = 60 To 67 라고 정의하였으므로, i 라는 변수를 60 부터 61, 62 … 67 까지의 숫자로
인식하게 되는 것입니다.
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.