הפונקציה Eval

חשוב: מאמר זה תורגם בתרגום מכונה, ראה כתב ויתור. תוכל למצוא את הגרסה באנגלית של המאמר כאן לעיונך.

באפשרותך להשתמש בפונקציה Eval כדי להעריך ביטוי שתוצאתו מחרוזת טקסט או ערך מספרי.

באפשרותך לבנות מחרוזת ולאחר מכן להעביר אותה לפונקציה Eval כאילו המחרוזת היתה ביטוי ממשי. הפונקציה Eval מחשבת את ביטוי מחרוזת ומחזירה את הערך שלו. לדוגמה, Eval("1 + 1") מחזירה 2.

אם תעביר לפונקציה Eval מחרוזת המכילה את השם של פונקציה, הפונקציה Eval מחזירה את הערך המוחזר של הפונקציה. לדוגמה, Eval("Chr$(65)") מחזירה "A".

תחביר

Eval ( stringexpr )

הארגומנט stringexpr הוא ביטוי המוערך מחרוזת טקסט אלפאנומריים. לדוגמה, stringexpr יכול להיות פונקציה המחזירה מחרוזת או ערך מספרי. או שהוא יכול להיות הפניה פקד בטופס. הארגומנט stringexpr חייבים להיות מוערכים מחרוזת או ערך מספרי; אין אפשרות להעריך אובייקט Microsoft Access.

הערה: הדוגמאות הבאות מדגימות את השימוש של פונקציה זו במודול Visual Basic for Applications‏ (VBA). לקבלת מידע נוסף אודות עבודה עם 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 מחזירה משתנה שהוא מחרוזת או סוג מספרי.

הארגומנט stringexpr להיות ביטוי המאוחסן במחרוזת. אם תעביר לפונקציה Eval מחרוזת שאינה כוללת ביטוי מספרי או שם פונקציה אלא רק מחרוזת טקסט פשוטה, תתרחש שגיאת זמן ריצה. לדוגמה, Eval("Smith") מביאה שגיאה.

באפשרותך להשתמש בפונקציה Eval כדי לקבוע את הערך המאוחסן במאפיין ערך של פקד. הדוגמה הבאה מעבירה מחרוזת הכוללת הפניה מלאה לפקד בפונקציה 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 כדי לגשת אופרטורים ביטוי שאינם זמינים בדרך כלל ב- במודול Visual Basic for Applications (VBA). לדוגמה, אין באפשרותך להשתמש באופרטורים בין... ו- או בישירות בתיבה קוד שלך, אך ניתן להשתמש בהם בביטוי המועבר לפונקציה Eval .

הדוגמה הבאה קובע אם הערך של פקד ShipRegion בטופס Orders הוא אחד ממספר קיצורי מדינה מצוינים. אם השדה מכיל אחד קיצורים, intState יהיה True (– 1). שים לב להשתמש בסימני גרש בודד (') כדי לכלול מחרוזת בתוך מחרוזת אחרת.

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

דוגמה

הדוגמה הבאה מניחה כי ברשותך סדרה של 50 פונקציות המוגדרות כ- A1, A2, וכן הלאה. דוגמה זו משתמשת בפונקציה Eval כדי לקרוא לכל פונקציה בסדרה.

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

הדוגמה הבאה מפעילה אירוע לחץ כאילו המשתמש לחץ על לחצן בטופס. אם הערך של המאפיין OnClick של הלחצן מתחיל בסימן שוויון (=), המעיד שהוא שם פונקציה, Eval הפונקציה שיחות בפונקציה, השווה ומפעילה את האירוע לחץ . אם הערך אינו מתחיל בסימן שוויון, הערך לתת שם מאקרו. פעולת השירות RunMacro של האובייקט DoCmd מפעילה את המאקרו הנקוב.

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

הערה: כתב ויתור בנוגע לתרגום מכונה: מאמר זה תורגם על-ידי מערכת מחשב, ללא התערבות אדם. Microsoft מציעה את תרגומי המכונה כדי לסייע למשתמשים שאינם דוברי אנגלית ליהנות מתוכן בנושא מוצרים, שירותים וטכנולוגיות של Microsoft. מכיוון שהמאמר תורגם על-ידי מכונה, הוא עלול להכיל שגיאות באוצר המילים, בתחביר או בדקדוק.

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Office Insider

האם מידע זה היה שימושי?

תודה על המשוב!

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×