안녕하세요.

 

이번에는 연산자(Operator)입니다.

산술 연산자, 비교 연산자, 연결 연산자, 논리 연산자 등이 있습니다.

엑셀에서 사용하는 연산자와 똑같은 것도 있고, 같은 이름이지만 사용법이 틀리거나 아예 새로운 것도 있습니다.

연산자가 어떻게 사용되는지 확인하려면 VBE에서 직접 실행 창을 열어 수식을 작성하는게 가장 손쉬운 방법입니다.

빈 엑셀 파일에서 <Alt + F11>을 눌러 VBE를 실행합니다.

[보기]-[직접 실행 창]을 선택하거나 단축키 <Ctrl + G>를 누릅니다.

 

 

산술 연산자 +(더하기), -(빼기), *(곱하기), /(나누기)는 엑셀 뿐만아니라 어디서나 사용합니다.

^(캐럿) 연산자는 제곱값을 구합니다.

2 ^ 2는 4를 의미하고, 2 ^ 2 ^ 2는 16을 의미합니다.

\(백 슬래시)는 나눗셈의 몫을 구하고, Mod는 나눗셈의 나머지를 구하는 연산자 입니다.

9 \ 4는 2이 결과값으로 나오고, 9 Mod 4는 1이 결과값으로 나옵니다.

비교 연산자 >(크다), <(작다), >=(크거나 같다), <=(작거나 같다), =(같다), <>(다르다)는 엑셀에서 사용하는 것과 같은 방법과 용도로 쓰입니다.

비교 연산자 중 특이한 것은 개체를 대상으로 사용되는 Is 연산자와 문자열을 대상으로 사용되는 Like 연산자 입니다.

Is 연산자는 두 개체가 같은지 비교활 때 사용되는데 =과 같은 방식으로 사용됩니다.

대상이 개체라는 것만 차이가 있죠.

Like는  특정 문자열이 특정 패턴에 해당되는 경우 True, 해당되지 않으면 False를 반환합니다.

패턴에 사용하는 기호로 *, ?, #, [목록], [!목록]이 있습니다.

*(애스터리스크)는 0개 또는 여러 개의 문자를 의미합니다.

?(퀘션 마크)는 1개의 문자를 의미합니다.

#(샾)은 1개의 숫자를 의미합니다.

[목록]은 목록에 해당하는 문자를 의미하고, [!목록]은 목록을 제외한 문자를 의미합니다.

"aBBBa" Like "a*a"의 결과는 True입니다.

"aBBBa" Like "a?a"의 결과는 False입니다.

"a1" Like "[a-z][0-9]"의 결과는 True입니다.

연결 연산자는 &(앰퍼샌드)+(플러스)가 있습니다.

&는 엑셀에서도 문자를 연결하는 연산자로 사용됩니다.

차이점은 문자열 뒤에 바로 붙여서 쓰면 안된다는 것입니다.

엑셀에서는 문자열 뒤에 바로 &를 붙여 쓰도 되지만 VBA에서는 문자열 뒤에 바로 &를 붙여쓰면 Long 정수형 변수를 선언하는 기호로 인식합니다.

+는 숫자를 대상으로 할 때는 산술 더하기 역할을 하고 문자를 대상으로 +를 쓰면 연결 연산자 역할을 합니다.

+를 연결 연산자로 굳이 쓸 이유는 없습니다.

"엑" & "셀"의 결과는 "엑셀" 입니다.

"엑" + "셀"의 결과도 "엑셀" 입니다.

마지막은 논리 연산자 입니다.

엑셀은 논리 함수로 사용되고 있죠.

And, Or, Not, Xor, Eqv, Imp 연산자가 있습니다.

And 연산자는 조건식이 둘다 참인 경우에만 참이 되는 연산자입니다.

Or 연산자는 조건식이 하나라도 참이면 참이되는 연산자입니다.

Not 연산자는 조건식이 참이면 거짓으로, 거짓이면 참으로 바꾸는 연산자입니다.

Xor 연산자는 둘 다 참이거나 거짓이면 거짓, 한쪽은 참, 다른쪽은 거짓이면 참이 되는 연산자입니다.

Eqv 연산자는 Xor 연산자의 반대로 둘 참이거나 거짓이면 참, 둘 중 하나는 참, 다른 하나는 거짓인 경우 거짓이 되는 연산자입니다.

Imp 연산자는 처음 값이 참, 두번째 값이 거짓일 때만 거짓이고, 그외는 모두 참이되는 연산자입니다.

주로 And, Or 연산자를 많이 씁니다.

연산자 https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/operator-summary 

 

Operator summary

 

docs.microsoft.com

여러 연산자를 연결해 사용할 때는 연산자 우선순위를 주의해야 합니다.

산술 연산자, 비교 연산자, 논리 연산자순으로 우선순위가 적용되고 같은 연산자 종류 사이에도 다시 우선순위가 적용됩니다.

괄호가 최우선순위를 가지니 우선순위가 명확하지 않다면 괄호로 묶어주면 간단히 해결됩니다.

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/operator-precedence

 

Operator precedence

Operator precedence In this article --> When several operations occur in an expression, each part is evaluated and resolved in a predetermined order called operator precedence. When expressions contain operators from more than one category, arithmetic oper

docs.microsoft.com

 

필요한 분께 도움되길 바라며 강좌는 마칩니다.

수고하셨습니다.

'엑셀 매크로&VBA' 카테고리의 다른 글

같은 내용을 묶어서 합치기(VBA)  (0) 2020.06.25
거래내역을 DB 형식으로 저장하기  (0) 2020.06.20
연산자  (0) 2020.06.06
변수, 상수  (0) 2020.05.27
VBE(Visual Basic Editor) 사용하기  (0) 2020.05.25
엑셀 매크로와 VBA 이야기  (0) 2020.05.23

+ Recent posts