brunch

You can make anything
by writing

C.S.Lewis

by 별더하기 May 09. 2020

#3 기초부터 탄탄히 – 변수

http://www.yes24.com/Product/Goods/84909299?Acode=101

프로그래밍을 함에 있어 변수를 설정하는 일은 매우 중요하다. 변수를 설정한다는 것은 데이터 형식을 선택하고 저장공간을 확보하는 핵심적인 활동이 된다.

변수는 사용자로부터 입력받는 값, 프로그래머가 사용자에게 전달하고자 하는 값 혹은 연산을 위해 잠시 저장해 두는 값 등 다양한 관점에서 필요로 한다. 그리고 VBA에서 제공되는 명령어 혹은 예약어를 제외한 모든 것은 변수에 담겨 처리된다고 생각하면 된다.

변수를 설정하는 방법에 대해 학습하기에 앞서 데이터 형식에 대해 알아보도록 한다. 

모든 프로그래밍 언어는 크게 두 가지 유형의 데이터 형식을 가진다. 바로 문자형과 숫자형이 그것이다. 그리고 두 개의 큰 줄기를 기준으로 다음의 그림과 같이 분리된다.  

문자와 숫자의 구분을 위해 해당 값의 시작과 끝에 큰따옴표를 붙이면 문자로 인식되고 없으면 숫자로 인식된다.


Dim은 Dimension의 약자로 변수를 설정하겠다고 선언하는 VBA에서 제공된 명령어이다. Dim 뒤에는 사용자가 명명하는 변수 이름이 나오고 AS 뒤에 해당 변수에 담길자료의 유형, 즉 데이터 형식을 지정하게 되는 것이다.

데이터 형식은 입력하지 않아도 무방하다. 입력되는 값의 유형에 따라 데이터 형식이 자동으로 결정된다. 하지만 이건 나중에 프로그래밍이 익숙해진 다음에 각자 연습해보도록 하고 우리는 무조건 데이터 형식을 결정하고 변수를 선언하는 훈련을 하기로한다. 아니, 데이터 유형을 반드시 입력하고 변수를 선언한다고 인지하자.

Sub F03_1()

Dim VAR_01 As String

VAR_01 = “VBA 어렵지 않아요."

MsgBox VAR_01

End Sub

가장 먼저 Dim을 통해 문자형 변수를 선언한다. 선언된 변수 VAR_01에 “VBA 어렵지 않아요.”라는 문장을 저장하고 MsgBox 명령을 통해 변수를 출력하면 저장된 “VBA 어렵지 않아요.”가 출력되는 것이다.

중요한 부분은 문자형 변수를 선언하면 저장되는 값의 양 끝에 큰따옴표가 찍힌다는 점이다. 이점만 유념하면 큰 문제가 없다.

Sub F03_2()

Dim VAR_02 As Date

Dim VAR_03 As Integer

VAR_02 = "2099-01-01"

VAR_03 = 123

MsgBox VAR_02 & "//" & VAR_03

End Sub

VAR_02와 VAR_03을 각각 날짜 형식과 숫자 형식으로 변수를 선언하고 출력한 결과이다.

변수를 설정하고 선언할 때는 몇 가지 유의할 사항이 있다. 가장 먼저는 선언된 변수에 값을 입력할 때 데이터 형식에 맞는 값을 입력해야 한다는 점이다.

데이터 형식이 크게 문자와 숫자로 구분되고 이를 위해 쌍 따옴표를 양 끝에 입력하게 되는데 이 큰따옴표가 있으면 문자, 없으면 숫자라는 점은 앞서의 학습으로 알고있다.

만약 문자 형식의 값을 변수에 담으며 큰따옴표를 입력하지 않으면 100% 오류가 발생한다. 의심의 여지가 없다.   


엑셀의 객체 이야기

엑셀의 객체는 파일을 의미하는 워크북(Workbook), 워크북 내에는 워크시트(Worksheet) 그리고 워크시트 내에는 셀(Cell)이라는 객체와 여러 셀의 범위를 설정하는 레인지(Range)라는 객체를 포함하고 있다.  



Sub F03_6()

Dim Cell_Value As String

Dim Range_Value As String

Cell_Value = "셀에 값 입력하기"

Range_Value = "레인지에 값 입력하기"

Worksheets("Sheet1").Cells(2, 1).Value = Cell_Value

Worksheets("Sheet1").Range("C1:D2").Value = Range_Value

End Sub

코드를 살펴보면 SHEET_NAME이라는 문자형 변수를 선언하고 해당 변수에 “시트이름 변경”이라는 값을 담아 두었다. 여기까지는 앞서 변수 설정에서 학습한 내용으로 큰 문제가 없다.

다음 코드를 보면 Worksheets(“Sheet1”).Name이라는 처음 접한 코드가 등장한다. 다시 상기해보면 Worksheets는 객체를 의미하는 것이고 좀더 정확히 Sheet1이라는 이름의 객체를 활용하는 것이다. 그리고 객체는 각각의 속성을 가지게 되므로 Name이라는 속성을 앞서 선언한 변수 SHEET_NAME으로 변경하겠다는 것을 나타내는 코드다.  


https://youtu.be/qdJKtmuUSTs

매거진의 이전글 #2 기초부터 탄탄히 – 객체와 프로시저
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari