<엑셀VBA 입문 0.1강> 변수

<엑셀VBA 입문 0.1강> 변수

블로그를 읽다가 흥미로운 질문을 봤다.

당장 엑셀 VBA를 이용해서 어떤 웹사이트의 내용을 긁어오거나(파싱), 오토마우스로 다른 어플리케이션을 조작하는 방법을 알고 싶다는 분이 계셨다.

어설프나마 필자는 그런 것을 할 수 있다. 무엇보다 바로 그런 것을 가르쳐주고 싶어서 이 강좌를 쓰고 있다.

하지만 지금은 때가 아니다. 기초를 먼저 쌓아야 한다. 그런 의미에서 아주 기본적인 것을 한 번 짚고 넘어가야 한다는 생각에 이 글을 쓴다.

———-

변수

변수란 무엇인가?

변수는 값을 담는 일종의 상자라고 할 수 있다. 변수를 가장 쉽게 이해할 수 있는 설명이다.

변수의 원래 뜻은 <변하는 값>이라는 뜻이지만, 그냥 값을 담는 상자/그릇이라고 생각하자.

예를 들어 a라는 변수(상자)가 있다고 해보자. 이 상자를 사용하기 위해서는 <선언>이라는게 필요하다.

VBA에서는, 변수를 사용하기 위해서 Dim 이라는 명령어로 변수를 <선언>한다.

예를 들어 a 라는 이름의 변수를 쓰고 싶다면,

Dim a

라고 쓴다.

이를 <변수의 선언>이라고 한다. 사용한다고 알리는 것이다.

(물론 VBA의 변수는 선언하지 않아도 사용 가능하다.

그래도 가급적 모든 변수는 선언해주는게 좋다.)

이 a라는 변수에 0 이라는 값을 담아보자.

a = 0

이라고 쓰면 a라는 상자에 0 이라는 값을 넣는 것이다.

변수명 오른쪽에 붙는 등호(=)는 프로그래밍에서 좌측 화살표(←)로 이해하는 것이 좋다.

변수명=값 은, 곧 변수명←값 과 같다.

변수에 값을 담는 것이다. 이를 <변수의 대입>이라고 부른다.

Dim a

a = 0

이라고 하면 이제 a의 값은 0 이다.

Dim a

Dim b

Dim c

a = 2

b = 3

c = a + b

이라고 하면 c의 값은 어떻게 될까?

5가 된다.

(c = a + b 는 사실상 c ← 2 + 3 이라는 의미이기 때문)

만약

Dim a

a = 10

a = a + 3

이라고 하면 어떨까?

결과적으로 a의 값은 13이 된다.

위에서 언급했듯 등호(=)는 <같다>라는 뜻이기보다 <대입>을 의미한다.

기존 a값인 10 에 3 을 더한 13 이 된다.

VBA 변수는 문자열 결합도 가능하다.

문자열 결합은 앤드<&>기호를 사용한다.

이런 식이다.

Dim aa

Dim bb

aa = “문자”

bb = “열”

cc = aa & bb

이 경우 cc의 값은 “문자열”이 된다.

숫자에 문자를 결합할 때도 마찬가지로 앤드<&>기호를 쓴다. 더하기<+>기호는 오직 숫자끼리 더할 때만 사용한다.

Dim a

Dim b

Dim c

Dim d

a = 1

b = “문자열”

c = a & b

d = b & a

c의 값은 “1문자열”이 되고,

d의 값은 “문자열1″이 된다.

정리하면 아래와 같다.

1. VBA 변수의 선언

Dim 변수명

ex) Dim a

2. VBA 변수의 대입

변수명 = 값

ex) a = 100

ex2) b = “문자열”

3. VBA 숫자 변수의 사칙연산

덧셈 : result = a + 5

뺄셈 : result = a – 5

곱셈 : result = a * 5

나누기 : result = a / 5

나머지 구하기 : result = a Mod 5

4. VBA 문자열 변수의 결합

결과변수 = 문자열변수 & 문자열변수

또는

결과변수 = 숫자변수 & 문자열변수

또는

결과변수 = 문자열변수 & 숫자변수

만약 숫자변수 2개 이상을 문자열처럼 결합하고 싶다면

결과변수 = 숫자변수 & “” & 숫자변수

이렇게 쓰면 된다.

ex) c = a & “” & b