EXCEL VBA

VBA 변수 설정하기

카루루1007 2020. 11. 21. 17:04
728x90
반응형
SMALL

먼저 간단한 소스코드를 보겠습니다.

 

Sub Test_1()

    Dim result As Long
        
    result = 10 + 20
    
    MsgBox ("10+20의 결과는 " & result)
    
    result = 10 - 20 
    
    MsgBox ("10 - 20의 결과는 " & result)
    
End Sub

 

실행해 보시면 메시지 박스가 두 번 출력이 되면서 결괏값을 보여주게 됩니다.

 

 

vba에서 변수를 선언할 때는 dim을 쓰고 변수명과 타입을 선언하면 됩니다.

 

Dim result As Long

 

Dim은 변수를 선언하겠다는 것을 알려줍니다

 

result는 변수의 이름입니다.

 

As는 변수의 타입을 설정하겠다

 

Long는 변수의 타입은 Long이다

 

위 구문은 이렇게 됩니다.

 

참고로 Long은 숫자형 변수로 우선 말씀드리겠습니다.

 

그럼 위 구문은 숫자가 들어가는 변수 result를 선언함.

 

이라는 의미가 됩니다.

 

반응형

result = 10 + 22 

 

이 구문은 위에서 선언한 변서 result에 값을 넣어주는 것입니다.

 

값을 대입할 때(넣어줄 때)는 [ = ] 표시를 사용합니다.

 

[ = ] 표시는 같다가 아니라 대입한다는 의미입니다.

 

 

MsgBox ("10+20의 결과는 " & result) 

 

그리고 MsgBox를 이용하여 결과를 화면에 보여줍니다.

 

[ & ]는 연결을 의미합니다.

 

 

 

그런데 만약에 10과 20의 덧셈과 뺄셈 값이 아닌 30과 40의 계산식을 보고 싶다면 어떻게 해야 할까요?

 

Sub Test_1() 

    Dim result As Long 
         
    result = 10 + 20 
     
    MsgBox ("10+10의 결과는 " & result) 
     
    result = 10 - 20 
     
    MsgBox ("10 - 20의 결과는 " & result) 
     
End Sub

 

8군데를 일일이 손으로 고쳐야 합니다. 

 

만약에 코드가 길다면 수백 군데가 될지도 모릅니다.

 

그러다가 또 숫자가 바뀐다면요?

 

미리 변수에 해당 값을 넣어 놓으면 변수에 대입된 값만 바꾸면 됩니다.

 

아래 코드를 보시겠습니다.

 

Sub Test_1()

    Dim result As Long
    Dim r_num As Long
    Dim l_num As Long
    Dim str_A As String
            
    str_A = "의 결과는? "
    
    r_num = 10
    l_num = 20
    
    result = r_num + l_num
    
    MsgBox (r_num & "+" & l_num & str_A & result)
        
    result = r_num - l_num
    
    MsgBox (r_num & "-" & l_num & str_A & result)
    
End Sub

 

r_num과 l_num이라는 long형 변수str_A라는 string형 변수를 추가로 설정했습니다.

 

string형 변수는 문자(또는 문자열)를 의미하는 변수입니다.

 

그리고 str_A에 "의 결과는? "이라는 값을 대입하였고,

 

r_num과 l_num변수에 각각 10과 20을 대입했습니다.

 

그리고 MsgBox 안의 내용도 변수로 대체했습니다.

 

 

변수는 서랍에 이름표를 붙이는 것이라고 보시면 됩니다.

 

맨 아래는 양말, 그 위에는 속옷, 맨 위에는 수건을 넣어놓는 서랍

 

그럼 밖에서 봤을 때 아 저기는 양말이 들어가겠구나, 또는 양말이 들어있겠구나

 

라고 생각을 할 겁니다. 

 

만약에 양말이 너무 많아져서 양말은 다른 곳에 넣고 그 안에 다른 것을 넣어야 한다면요?

 

서랍 자체를 바꾸는 게 아니라 이름표만 바꾸면 됩니다.

 

VBA에는 정말 다양한 변수 타입이 있습니다.

 

우선 그런 자잘한 것들을 익히는 것보다는 익숙해지는 것이 중요하니

 

하나씩 써보도록 하겠습니다.

 

자세한 변수의 종류는 여기를 참고하세요

728x90
반응형
LIST