Eval 함수

Eval 함수를 사용 하 여 결과 텍스트 문자열이 나 숫자 값이 되는 식 을 평가할 수 있습니다.

문자열을 구성한 다음 문자열을 실제 식 처럼 Eval 함수에 전달할 수 있습니다. Eval 함수는 문자열 식 를 계산 하 고 해당 값을 반환 합니다. 예를 들어, Eval("1 + 1") 는 2를 반환 합니다.

함수 이름을 포함 하는 string을 eval 함수에 전달 하는 경우 eval 함수는 함수의 반환 값을 반환 합니다. 예를 들어 Eval("Chr$(65)") 는 "A"를 반환 합니다.

구문

Eval ( stringexpr )

Stringexpr 인수는 영숫자 텍스트 문자열로 평가 되는 식입니다. 예를 들어 stringexpr 는 문자열 또는 숫자 값을 반환 하는 함수 일 수 있습니다. 또는 폼의 컨트롤 에 대 한 참조일 수 있습니다. Stringexpr 인수는 string 또는 numeric 값으로 계산 되어야 합니다. Microsoft Access 개체 을 평가할 수 없습니다.

참고: VBA(Visual Basic for Applications) 모듈에서 이 함수를 사용하는 경우를 예로 들어 보겠습니다. VBA 사용에 대해 자세히 알아보려면 검색 옆의 드롭다운 목록에서 개발자 참고를 선택하고 검색 상자에 검색어를 하나 이상 입력하세요.

참고: 함수 이름을 Eval 함수에 전달 하는 경우 stringexpr 인수에서 함수 이름 뒤에 괄호를 포함 해야 합니다. 예:

' ShowNames is user-defined function.
Debug.Print Eval("ShowNames()")

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

주의

폼 또는 보고서, 매크로 또는 모듈의 계산된 컨트롤 에서 Eval 함수를 사용할 수 있습니다. Eval 함수는 문자열 또는 숫자 형식인 Variant를 반환 합니다.

Stringexpr 인수는 문자열에 저장 된 식 이어야 합니다. Eval 함수에 숫자 식이나 함수 이름 (간단한 텍스트 문자열만 포함 되지 않음)을 전달 하는 경우에는 런타임 오류 발생 합니다. 예를 들어 Eval("Smith") 는 오류를 반환 합니다.

Eval 함수를 사용 하 여 컨트롤의 value 속성에 저장 된 값을 확인할 수 있습니다. 다음 예제에서는 컨트롤에 대 한 전체 참조가 포함 된 문자열을 Eval 함수에 전달 합니다. 그런 다음 대화 상자에 컨트롤의 현재 값을 표시 합니다.

Dim ctl As Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "Forms!Employees!LastName"
MsgBox ("The current value of " & ctl.Name & _
" is " & Eval(strCtl))

Eval 함수를 사용 하 여 Vba (Visual Basic for applications) 모듈에서 일반적으로 사용할 수 없는 식 연산자에 액세스할 수 있습니다. 예를 들어 다음 사이에 SQL 연산자를 사용할 수 없습니다 . And 또는 in 을 코드에서 직접 사용할 수 있지만 Eval 함수에 전달 되는 식에이 변수를 사용 하면 됩니다.

다음 예에서는 Orders 폼의 ShipRegion 컨트롤 값이 여러 개의 지정 된 상태 약어 중 하나 인지 여부를 확인 합니다. 필드에 약어 중 하나가 포함 된 경우 intStateTrue (– 1)가 됩니다. 다른 문자열 내에 문자열을 포함 하려면 작은따옴표 (')를 사용 합니다.

Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

쿼리 예제

결과

Eval ("15 + 3")을 기준으로 제품 판매 그룹의 Expr1으로 Eval ("15 + 3")을 선택 합니다.

문자열 값을 계산 하 고 결과를 계산 합니다. 결과: 18.

Eval ("date () + month (date ())")를 선택 하 여 신규 날짜별로 제품 판매 그룹에서 Eval ("Date () + month (date ())");

문자열 값을 계산 하 고 함수를 식별 하 고 실행 합니다. 결과: 현재 시스템 날짜 + 현재 월이 "NewDate" 열에 표시 됩니다.

VBA 예제

다음 예제에서는 일련의 50 함수가 A1, A2 등으로 정의 되어 있다고 가정 합니다. 이 예제에서는 Eval 함수를 사용 하 여 계열의 각 함수를 호출 합니다.

Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub

다음 예제에서는 사용자가 폼에서 단추를 클릭 한 것 처럼 Click 이벤트를 트리거합니다. Button의 OnClick 속성 값이 함수의 이름임을 나타내는 등호 (=)로 시작 하는 경우 Eval 함수는 해당 함수를 호출 하며,이는 Click 이벤트를 트리거하는 것과 같습니다. 값이 등호로 시작 되지 않는 경우 값은 매크로의 이름을 가져야 합니다. DoCmd 개체의 RunMacro 메서드는 명명 된 매크로를 실행 합니다.

Dim ctl As Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If

참고:  이 페이지는 자동화를 통해 번역되었으며 문법 오류나 부정확한 설명을 포함할 수 있습니다. 이 목적은 콘텐츠가 사용자에게 유용하다는 것입니다. 정보가 도움이 되는지 알려주세요. 참조할 수 있는 영문 문서가 여기 있습니다.

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×