VBA 비교 Operators: 같지 않음, Less 보다 또는 같음
⚡ 스마트 요약
VBA 비교 Opera연산자는 한 값을 다른 값과 비교하여 참(True) 또는 거짓(False)을 반환합니다. 이 페이지에서는 여섯 가지 연산자를 정의하고, if 문 안에서의 사용법을 보여주며, 텍스트와 날짜를 비교하는 방법과 잘못된 결과를 초래하는 오류들을 설명합니다.

VBA 비교 Opera토르
비교 연산자는 값을 비교하는 데 사용됩니다. 비교 연산자에는 같음, 미만, 초과, 같지 않음이 있습니다.
비교 연산자는 유효성 검사를 위해 값을 비교하는 데 사용됩니다. 예를 들어, 개발 중이라고 가정해 보겠습니다.ping 간단한 POS(판매 시점 관리) 애플리케이션을 예로 들어보겠습니다. 이 애플리케이션에서는 결제 전에 입력된 값을 검증해야 합니다. 이러한 경우 비교 연산자를 사용할 수 있습니다. 비교 연산자는 음수와 비교하거나 결제 금액이 청구 금액을 초과하지 않는지 확인합니다. 비교 연산자는 이러한 상황에서 유용하게 사용됩니다.
모든 비교는 참(True) 또는 거짓(False) 두 값 중 하나를 반환하며, 숫자를 반환하지는 않습니다. if 문은 바로 이 비교 결과를 바탕으로 작동합니다.
다음 표는 다음에 정의된 비교 연산자를 나열합니다. VBA.
| Opera바위 산 | 기술설명 |
|---|---|
| = | 동일: 두 값이 같은지 확인합니다. 또한 할당 연산자로 사용됩니다. |
| < | Less than: 왼쪽 값이 오른쪽 값보다 작은지 확인합니다. |
| > | 보다 큼: 왼쪽 값이 오른쪽 값보다 큰지 확인합니다. |
| <> | 같지 않음: 두 값이 서로 다른지 확인합니다. |
| <= | Less 이하: 왼쪽 값이 오른쪽 값보다 작거나 같은지 확인합니다. |
| >= | 크거나 같음: 왼쪽 값이 오른쪽 값보다 크거나 같은지 확인합니다. |
각 연산자가 두 변수에 적용되는 것을 보면 반환되는 결과를 더 쉽게 예측할 수 있습니다.
VBA 비교 Opera예제가 있는 토르
다음 표는 Excel VBA 비교를 보여줍니다. Opera예제와 출력이 포함된 토르.
| S / N | Opera바위 산 | 예시 | 산출 |
|---|---|---|---|
| 1 | = | x = z이면 | 같으면 true를 반환하고, 같으면 false를 반환합니다. |
| 2 | < | x < z이면 | x가 z보다 작으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. |
| 3 | > | x > z이면 | x가 z보다 크면 true를 반환하고, 그렇지 않으면 false를 반환합니다. |
| 4 | <> | x <> z이면 | 같지 않으면 true를 반환하고, 다르면 false를 반환합니다. |
| 5 | <= | x <= z이면 | x가 z보다 작거나 같으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. |
| 6 | >= | x >= z이면 | x가 z보다 크거나 같으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. |
예제 소스 코드
동등 비교 Opera바위 산
If 2 = 1 Then MsgBox "True", vbOKOnly, "Equal Operator" Else MsgBox "False", vbOKOnly, "Equal Operator" End If
이리,
- “2 = 1이면… Else… End If” if 문을 사용하여 "2 = 1" 조건을 평가합니다.
- “메시지Box... " 메시지 상자를 표시하는 내장 함수입니다.
- 첫 번째 매개변수 "True" 또는 "False"는 메시지 상자에 표시되는 것입니다. 우리의 예에서 2는 1과 같지 않으므로 메시지 상자에 "false"가 표시됩니다.
- 두 번째 매개변수 "vbOKOnly"는 메시지 상자에 표시되는 버튼입니다.
- 세 번째 매개변수 “동일 Opera"tor"가 메시지 상자의 제목입니다.
위 코드를 실행하면 다음과 같은 결과가 나옵니다.
그 단일 테스트는 가장 간단한 형태입니다. 실제 매크로는 여러 비교를 결합하고 여러 결과 사이에서 분기합니다.
비교 기능을 사용하는 방법 Operaif 문에서 tors
비교 연산자는 단독으로는 거의 유용하지 않습니다. 참 또는 거짓 결과는 조건문의 입력으로 사용되며, 그중에서도 if 문이 가장 많이 사용됩니다. 아래 예시는 A1 셀에 저장된 점수를 채점하고 그 결과를 셀 옆에 출력합니다.
Sub GradeScore() Dim Score As Long Score = Sheet1.Range("A1").Value If Score >= 90 Then Sheet1.Range("B1").Value = "Distinction" ElseIf Score >= 50 Then Sheet1.Range("B1").Value = "Pass" ElseIf Score < 0 Then MsgBox "A score cannot be negative", vbCritical, "Invalid Entry" Else Sheet1.Range("B1").Value = "Fail" End If End Sub
매크로는 점수를 한 번 읽은 다음 세 가지 조건과 순서대로 비교합니다. 매크로가 이렇게 동작하는 이유는 네 가지로 설명할 수 있습니다.
- 순서가 중요합니다. VBA는 True를 반환하는 첫 번째 분기에서 멈춥니다. 배치 점수 >= 50 전에 점수 >= 90 모든 고득점을 합격으로 표시할 것입니다.
- Else는 모든 경우를 포괄하는 표현입니다. 이전의 모든 테스트를 통과하지 못한 값은 Else로 전달되므로 처리되지 않은 입력은 없습니다.
- 연결 금지: VBA가 읽을 수 없습니다 0 <= 점수 <= 100. 쓰다 점수가 0 이상이고 점수가 100 이하이면 를 사용하여 논리 연산자 대신.
- 동일한 테스트이지만 구조는 다릅니다. Do While과 Select Case는 동일한 조건을 사용하므로, 작성하는 모든 루프에 연산자가 적용됩니다.
💡 팁: 다음과 같이 숫자형으로 변수를 선언하세요. 딤 스코어 애즈 롱값이 텍스트를 담고 있는 Variant로 유지되는 경우, “9” > “10” 비교가 문자 단위로 이루어지기 때문에 True를 반환합니다.
VBA에서 텍스트와 날짜 비교하기
Numbers 산술적으로 예상되는 것과 정확히 일치하지만, 텍스트와 날짜는 자체적인 규칙을 따르며, 둘 다 초보자에게는 예상치 못한 결과를 가져옵니다.
문자열은 정렬 위치를 기준으로 한 문자씩 비교되므로 "Apple" < "Banana"는 True를 반환합니다. 기본적으로 대소문자를 구분하므로 "guru99" = "Guru99”는 False를 반환합니다. 배치 옵션 비교 텍스트 모듈 맨 위에 있는 코드는 해당 모듈 내의 모든 문자열 비교에서 대소문자를 무시하도록 합니다. 모듈을 변경하지 않고 단일 테스트를 수행하려면 vbTextCompare 인수를 사용하여 StrComp 함수를 사용하십시오.
날짜는 1899년 12월 30일부터 계산된 일련번호로 저장되므로, 동일한 6명의 작업자와 직접 비교됩니다. 만약 마감일이 날짜보다 작다면 Date 함수는 현재 시스템 날짜를 일련번호와 같은 형식으로 반환하기 때문에 기한이 지난 항목을 정확하게 감지합니다. 단, 텍스트 형식으로 저장된 날짜("01/02/2026")는 가져온 파일에서 읽어온 문자열로, 날짜가 아닌 알파벳 순으로 비교됩니다. 테스트하기 전에 CDate 함수를 사용하여 날짜를 날짜로 변환해야 합니다.
각 유형에 대한 규칙을 알면 대부분의 예상치 못한 상황을 피할 수 있지만, 숙련된 개발자조차도 몇 가지 오류에 부딪히곤 합니다.
VBA에서 값을 비교할 때 흔히 저지르는 실수
아래 다섯 가지 문제는 예상치 못한 결과가 나오는 대부분의 비교 사례의 원인입니다.
- 과제를 비교로 오해함: 특정 조건 외에, X = 5 x에 5를 저장합니다. if 문 안에서 동일한 기호를 사용하여 같음을 테스트합니다. VBA에는 별도의 == 연산자가 없으므로 문맥을 주의 깊게 읽어야 합니다.
- 지원 Double 정확한 동일성을 위한 값: 저장된 정밀도 때문에 0.1 + 0.2 = 0.3은 False를 반환합니다. 대신 반올림된 차이를 비교하세요. 예를 들어 만약 Abs(a – b) < 0.000001이면.
- 무엇이든 Null과 비교하기: Null은 다른 Null과도 같지 않습니다. IsNull을 사용하여 테스트하세요. = 널.
- 텍스트와 숫자를 비교하기: 텍스트로 "100"이 입력된 셀은 숫자 100과 같지 않습니다. 테스트하기 전에 CLng 또는 CDbl 함수를 사용하여 변환하십시오.
- .Value 대신 .Text를 읽는 경우: .Text 속성은 열 너비와 서식에 따라 잘린 현재 표시되는 내용을 반환합니다. 항상 .Value 속성과 비교해야 합니다.

