[VBA 제 11강] - 변수란무엇인가Ⅰ 썸네일 이미지
[VBA 제 11강] - 변수란무엇인가Ⅰ
콘텐츠 타입 MS 오피스 엑셀 2003(2007, 2010가능), Windows XP 이상
용량0KB
조회1,070
즐겨찾기
[VBA 제 11강] - 변수란무엇인가Ⅰ를 즐겨찾기 한 횟수는 0 0입니다.
이용등급 프리미엄
제품 상세정보

 




[ 기초 강좌 ]

 

제 11 강

변수란 무엇인가Ⅰ

 

Excel의 생명이라고 할 수 있는 변수를

알아봅니다.

이럴 때 필요해요

 

변수는 수시로 변하는 어떤 값을 말합니다.

이렇게 사용해요

먼저, 아래 그림처럼 표를 작성해봅니다.

 

 

그리고, 아래의 수식을 따라 적고 실행해봅니다.

   Sub 변수란무엇인가()
     Dim i As Integer
     Dim j As Integer
     Dim k As Integer
 
         i = Sheets("Sheet1").Range("B7").Value
         j = Sheets("Sheet1").Range("B8").Value
         k = i * j
    
         Sheets("Sheet1").Range("B9") = k
     
   End 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
     For i = 60 To 67
        Cells(i, 1) = "변수란 무엇인가"
      Next i


    End Sub 

 

 

앞에서 설명드린 바와 같이, 먼저  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 까지의 숫자로
인식하게 되는 것입니다.

 

 

저작권정보
1. 콘텐츠의 저작권은 쿠키(www.coukey.co.kr)에 있으며, 사용권한은 1인 1카피입니다.
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.
[VBA 제 11강] - 변수란무엇인가Ⅰ
이용후기

업무자동화 맞춤제작

고객님의 상황에 100% 맞춘 콘텐츠 제작 전문 서비스를 이용해 보세요.
프리미엄 무료 이벤트 중