엑셀관련/vba

[EXCEL/엑셀 VBA]데이터 추출_변수

22rodnjf 2016. 12. 20. 21:52

앞의 편에 이어서 코드를 분석하도록 하겠습니다.

이중 변수에 초점을 맞추고 설명하도록 하겠습니다.


Sub 데이터추출()


Dim 반복변수, 추출값변수 As Integer


For 반복변수 = 0 To Sheet1.Range("B1")


    If Sheet1.Range("A2").Offset(반복변수, 0) = Sheet1.Range("H1") Then

        Sheet1.Range("F2").Offset(추출값변수, 0) = Sheet1.Range("C2").Offset(반복변수, 0)

        추출값변수 = 추출값변수 + 1

    End If


Next


End Sub


위의 코드에서 [Dim 반복변수, 추출값변수 As Integer] 이 부분이 바로 변수를 선언하는 것입니다.

말이 조금 어렵지요.

쉽게 설명하면 방을 만들어 주는 것입니다.

저는 [반복변수] 라는 방과 [추출값변수] 라는 방을 만들어 준것입니다.


이 방은 왜 만든 것일까요?


바로 필요한 값을 넣어주기 위해서입니다.

만약에 A+B 의 값을 컴퓨터에게 물어보려면 어떻게 해야할까요.

가장먼저 A와 B를 만들어줘야겠지요.


이 A와 B가 바로 변수 입니다.


VBA에는 사실 수 없이 많은 변수가 존재합니다.

바로 A1, A2, ... 등등 수없이 많은 셀 들이죠. 셀 하나하나도 변수와 같습니다.

그곳에 하나의 값이 들어가서 컴퓨터에게 정보를 전달하고 있기 때문이죠.


엑셀 시트에서 묻는다면

A1 셀 + A2 셀 = ? 이라면


VBA에서는 먼저 [변수1]과 [변수2]를 만들어 주고

변수1 + 변수2 = ? 이라고 묻게 되는거죠.


Dim 반복변수, 추출값변수 As Integer


그렇다면 이 코드는 결국

[Dim] -> 변수를 만들어 주세요.

반복변수, 추출값변수 -> 이런 이름의 변수를 만들어 주세요.

As Integer -> int값만 들어갈 수 있도록요.


여기서 또 모르는 것이 나왔습니다.

바로 As Integer 입니다. 변수의 형식을 정해주는 것입니다.

엑셀의 셀은 모든 종류의 값을 가질 수 있지만

VBA의 변수는 사용자가 정해주는 대로 지정될 수 있습니다.

변수도 다양한 종류가 있습니다.

문자열 형식인 String 날짜 형식인 Date 셀의 위치 형식인 Range 등 다양한 종류가 있습니다.


그럼 저 변수들은 왜 만든 걸까요. 다음에 For ... Next 구문을 설명하면서 마저 설명하겠습니다.