엑셀 VBA 이항 논리 연산자 And, Or, Xor 와 단항 논리 연산자 Not 사용하는 방법

 

환경: Microsoft Excel 2013

 

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

 

엑셀 VBA 이항 논리 연산자 And, Or, Xor 와 단항 논리 연산자 Not 사용하는 방법

 

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 이항 논리 연산자 And, Or, Xor 와 단항 논리 연산자 Not 사용하는 방법

 

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

 

엑셀 VBA 이항 논리 연산자 And, Or, Xor 와 단항 논리 연산자 Not 사용하는 방법

 

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 이항 논리 연산자 And, Or, Xor 와 단항 논리 연산자 Not 사용하는 방법


저작자 표시 비영리 변경 금지
신고
Posted by 녹두장군


티스토리 툴바