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 시트에 있는 내용을 파일, 텍스트로 출력하기 (2) | 2024.01.28 |
---|---|
엑셀 VBA - Value, Formula, FormulaR1C1, Text 속성으로 값 입력 및 읽기 (1) | 2024.01.24 |
엑셀 VBA 사용자가 선택한 영역 값, 셀 주소 정보 알아 내는 방법 (2) | 2024.01.21 |
엑셀 VBA 셀 참조하는 여러가지 방법 (4) | 2024.01.11 |
엑셀 VBA 함수 CStr 데이터를 문자열로 변환하기 (1) | 2024.01.02 |
엑셀 VBA 날짜 여부 확인 함수 IsDate 사용하기 (1) | 2024.01.02 |
엑셀 VBA 문자열 자르기, LEFT RIGHT 함수를 이용해 문자열 추출하는 방법 (0) | 2023.12.23 |
엑셀 VBA 체크 박스 CheckBox 컨트롤 사용하기 (0) | 2023.12.20 |