VBA 에서 If, Switch Case 와 같은 분기문에 조건을 만들기 위해서 들어가는 것이 논리 연산자 입니다. 논리 연산자는 참/거짓을 비교해서 참/거짓의 결과값을 반환합니다. And, Or, Xor 과 같은 두 개의 피연산자가 필요하므로 이항 연산자라고 하며, Not 과 같이 단일 피연산자만 있으면 되는 경우 단항 연산자라고 합니다.
◎ And 연산자 |
▼ 조건에 들어가는 두 Boolean 식에 대한 논리곱을 수행합니다. 그러니까 두 식이 모두 True 인 경우 True 가 되며, 하나라도 False 인 경우에는 False 를 반환하게 됩니다.
Sub LogicalAnd() Dim score1 As Integer, score2 As Integer, result As String score1 = 20 score2 = 1 If score1 >= 60 And score2 > 1 Then result = "pass" Else result = "fail" End If MsgBox result End Sub |
◎ Or 연산자 |
▼ Or 연산자는 두 Boolean 식에 대해 논리합 또는 논리 포함을 수행합니다. 식 중 하나가 True이거나 두 식이 모두 True인 경우 Or는 True를 반환합니다. 두 식이 모두 True인 경우 Or는 False를 반환합니다. 아래 함수는 score1 >= 60 가 True 이고 score2 > 1 가 False 이므로 Or 연산자로 인해 결국 True 가 되는 것이죠.
Sub LogicalOr() Dim score1 As Integer, score2 As Integer, result As String score1 = 60 score2 = 1 If score1 >= 60 Or score2 > 1 Then result = "pass" Else result = "fail" End If MsgBox result End Sub |
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 나머지를 구하기 위한 Mod 연산자와 몫 구하는 연산자 사용법 ▶ 엑셀 VBA 연산자 사용해서 String 문자열을 합치기 ▶ 엑셀 VBA 날짜 데이터를 비교하거나 연산하기 ▶ 엑셀 VBA IF 지시 구문 사용하는 방법 ▶ 엑셀 VBA 반복문 For Next 문 사용하기 |
◎ Xor 연산자 |
▼ Xor 연산자는 배타적 논리합이라고 합니다. 두 식 중에서 하나만 True 인 경우 Xor 은 True 를 반환하게 됩니다. 두 식 모두 True 이거나 False 라면 False 를 반환하겠죠. 그럼 Or 과의 차이점은 무엇일까요? Or 은 두 식 모두 True 이면 True 를 반환하지만 Xor 은 False 를 반환합니다.
Sub LogicalXor() Dim score1 As Integer, score2 As Integer, result As String score1 = 60 score2 = 3 If score1 >= 60 Xor score2 > 1 Then result = "pass" Else result = "fail" End If MsgBox result End Sub |
◎ Not 연산자 |
▼ Not 연산자는 식의 논리 부정 연산을 수행합니다. 그러니까 결과 값이 True 일때 not 연산자를 사용하면 False 가 되는 것이죠. 아래 식에서 Not 이 없다면 두 식이 참이기 때문에 결과값은 True 입니다. 하지만 Not 연산자로 인해 식 하나가 False 로 바뀌었기 때문에 False 가 되는 것입니다.
Sub LogicalNot() Dim score1 As Integer, score2 As Integer, result As String score1 = 60 score2 = 3 If score1 >= 60 And Not score2 > 1 Then result = "pass" Else result = "fail" End If MsgBox result End Sub |
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 나머지를 구하기 위한 Mod 연산자와 몫 구하는 연산자 사용법 ▶ 엑셀 VBA 연산자 사용해서 String 문자열을 합치기 ▶ 엑셀 VBA 날짜 데이터를 비교하거나 연산하기 ▶ 엑셀 VBA IF 지시 구문 사용하는 방법 ▶ 엑셀 VBA 반복문 For Next 문 사용하기 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 문자열, 텍스트 숫자를 문자열 숫자로 변경하기 (0) | 2022.05.08 |
---|---|
엑셀 VBA 사용자가 선택한 영역 값, 셀 주소 정보 알아 내는 방법 (1) | 2022.05.03 |
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 (0) | 2022.05.03 |
엑셀 VBA 개체, 속성, 함수, 이벤트 사용법과 사례 검색해서 참고하기 (0) | 2022.04.26 |
엑셀 VBA Function 와 Sub 프로시저의 차이점과 사용법 알아 보기 (0) | 2022.04.18 |
엑셀 VBA 동일한 글자색 셀 개수 구하기 (9) | 2022.04.09 |
엑셀 VBA 중복 데이터 재귀 호출과 반복문 사용해서 삭제하기 (0) | 2022.04.05 |
엑셀 VBA 입력된 값 형식 확인 Information 관련 함수 모음 (0) | 2022.04.01 |