שימוש בפונקציות CALL ו- REGISTER

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

מאמר זה מתאר את תחביר הנוסחה של הפונקציות CALL, ‏REGISTER ו- REGISTER.ID והשימוש בהן ב- Microsoft Excel.

הערה: הפונקציות CALL ו- REGISTER אינן זמינות ב- Excel Online.

במאמר זה

תיאור

סוגי נתונים

הערות

מידע נוסף על סוגי נתונים

סוגי הנתונים F ו- G

סוג הנתונים K

סוג הנתונים O

סוג הנתונים P

סוג הנתונים R - קריאה לפונקציות של Microsoft Excel מקבצי DLL

פונקציות נדיפות וחישוב מחדש

שינוי במקום - פונקציות שהוצהרו כריקות

תיאור

להלן תיאור של סוגי נתונים של ארגומנטים וערכי החזרה הנמצאים בשימוש בפונקציות CALL, ‏REGISTER ו- REGISTER.ID. יש הבדלים קלים בין ארגומנטים לערכי החזרה בהתאם לסביבת ההפעלה, והבדלים אלה מוצגים בטבלת סוגי הנתונים.

לראש הדף

סוגי נתונים

בפונקציות CALL,‏ REGISTER ו- REGISTER.ID, הארגומנט type_text מציין את סוג הנתונים של ערך ההחזרה ואת סוגי הנתונים של כל הארגומנטים לפונקציית ה- DLL או משאב הקוד. התו הראשון ב- type_text מציין את סוג הנתונים של ערך ההחזרה. שאר התווים מציינים את סוגי הנתונים של כל הארגומנטים. לדוגמה, פונקציית DLL, המחזירה מספר עם נקודה צפה ומקבלת כארגומנטים מספר שלם ומספר עם נקודה צפה, דורשת ערך "BIB" עבור הארגומנט type_text.

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

קוד

תיאור

מועבר על-ידי

הצהרת C

A

לוגי
(FALSE = 0), TRUE = 1)

ערך

short int

B

מספר IEEE בעל שמונה בתים עם נקודה צפה

ערך
(Windows)

הפניה (Macintosh)

double
(Windows)‎

double * (Macintosh)‎

C

מחרוזת המסתיימת ב- Null (אורך מחרוזת מרבי = 255)

הפניה

char *‎

D

מחרוזת הנספרת בבתים (הבית הראשון מכיל את אורך המחרוזת, אורך מחרוזת מרבי = 255 תווים)

הפניה

Unsigned char *‎

E

מספר IEEE בעל שמונה בתים עם נקודה צפה

הפניה

double *‎

F

מחרוזת המסתיימת ב- Null (אורך מחרוזת מרבי = 255 תווים)

הפניה (שינוי במקום)

char *‎

G

מחרוזת הנספרת בבתים (הבית הראשון מכיל את אורך המחרוזת, אורך מחרוזת מרבי = 255 תווים)

הפניה (שינוי במקום)

unsigned char *‎

H

מספר שלם לא חתום של 2 בתים

ערך

unsigned short int

I

מספר שלם חתום של 2 בתים

ערך

short int

J

מספר שלם חתום של 4 בתים

ערך

long int

K

מערך

הפניה

FP *‎

L

לוגי
(FALSE = 0, TRUE = 1)

הפניה

short int *‎

M

מספר שלם חתום של 2 בתים

הפניה

short int *‎

N

מספר שלם חתום של 4 בתים

הפניה

long int *‎

O

מערך

הפניה

מועברים שלושה ארגומנטים:
unsigned short int *‎
unsigned short int *‎
double [ ]‎

P

מבנה נתונים OPER ב- Microsoft Excel

הפניה

OPER *‎

R

מבנה נתונים XLOPER ב- Microsoft Excel

הפניה

XLOPER *‎

לראש הדף

הערות

  • ההצהרות בשפת C מבוססות על ההנחה שברירת המחדל במהדר היא ערכים כפולים בני 8 בתים, מספרים שלמים קצרים של 2 בתים, ומספרים שלמים ארוכים של 4 בתים.

  • בסביבת התיכנות של Microsoft Windows, כל המצביעים הם מצביעים רחוקים. לדוגמה, עליך להצהיר על קוד סוג הנתונים D כ- unsigned char far *‎ ב- Microsoft Windows.

  • כל הפונקציות בקבצי DLL ובמשאבי הקוד נקראות לפי מוסכמות הקריאה של פסקל. רוב המהדרים מסוג C מאפשרים שימוש במוסכמות הקריאה של פסקל על-ידי הוספת מילת המפתח של פסקל להצהרת הפונקציה, כמו בדוגמה הבאה: pascal void main (rows,columns,a)

  • אם פונקציה כלשהי משתמשת בסוג נתונים המועבר על-ידי הפניה עבור ערך ההחזרה שלה, ניתן להעביר מצביע Null כערך ההחזרה. Microsoft Excel יפרש את המצביע ה- Null כערך השגיאה ‎#NUM!‎.

לראש הדף

מידע נוסף על סוגי נתונים

סעיף זה כולל מידע מפורט אודות סוגי הנתונים F,‏ G,‏ K,‏ O,‏ P ו-R, ומידע נוסף אודות הארגומנט type_text.

סוגי הנתונים F ו- G

בעזרת סוגי הנתונים F ו- G, הפונקציה יכולה לשנות מאגר מחרוזות שהוקצה על-ידי Microsoft Excel. אם קוד הסוג של ערך ההחזרה הוא F או G, ‏Microsoft Excel מתעלם מהערך שהפונקציה מחזירה. במקום זאת, Microsoft Excel מחפש ברשימת הארגומנטים של הפונקציה אחר סוג הנתונים הראשון המתאים (F או G) ולאחר מכן משתמש בתוכן הנוכחי של מאגר המחרוזות שהוקצה כערך ההחזרה. Microsoft Excel מקצה לארגומנט 256 בתים, כך שהפונקציה יכולה להחזיר מחרוזת גדולה מזו שקיבלה.

לראש הדף

סוג הנתונים K

סוג הנתונים K משתמש במצביע למבנה FP בעל גודל משתנה. עליך להגדיר מבנה זה בקובץ ה- DLL או במשאב הקוד כך:

typedef struct _FP
{
unsigned short int rows;
unsigned short int columns;
double array[1]; /* Actually, array[rows][columns] */
} FP;

ההצהרה double array[1] מקצה אמצעי אחסון למערך עם רכיב יחיד. מספר הרכיבים במערך בפועל שווה למספר השורות כפול מספר העמודות.

לראש הדף

סוג הנתונים O

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

במקום להחזיר ערך, הפונקציה יכולה לשנות מערך המועבר על-ידי סוג הנתונים O. לשם כך, השתמש ב- "‎>O" עבור הארגומנט type_text. לקבלת מידע נוסף, ראה "שינוי במקום - פונקציות שהוצהרו כריקות" בהמשך.

סוג הנתונים O נוצר לצורך תאימות ישירה עם קבצי DLL של Fortran, המעבירים ארגומנטים באמצעות הפניה.

לראש הדף

סוג הנתונים P

סוג הנתונים P הוא מצביע למבנה OPER. מבנה זה מכיל 8 בתים של נתונים, ולאחריהם מזהה בן שני בתים המציין את סוג הנתונים. עם סוג הנתונים P, פונקציה של קובץ DLL או משאב קוד יכולים לקבל ולהחזיר כל סוג נתונים של Microsoft Excel.

מבנה OPER מוגדר באופן הבא:

typedef struct _oper

{
union
{
double num;
unsigned char *str;
unsigned short int bool;
unsigned short int err;
struct
{
struct _oper *lparray;
unsigned short int rows;
unsigned short int columns;
} array;
} val;
unsigned short int type;
} OPER;

שדה הסוג מכיל את אחד הערכים הבאים.

סוג

תיאור

שדה ערך לשימוש

1

מספרי

num

2

מחרוזת (הבית הראשון מכיל את אורך המחרוזת)

str

4

בוליאני (לוגי)

bool

16

שגיאה: ערכי השגיאה הם:

‎0#NULL!‎

‎7#DIV/0!‎

‎15#Value!‎

‎23#REF!‎

‎29#NAME?‎

‎36#NUM!‎

42#N/A

err

64

מערך

array

128

ארגומנט חסר

256

תא ריק

בשני הערכים האחרונים ניתן להשתמש רק כארגומנטים, לא כערכי החזרה. ערך הארגומנט החסר (128) מועבר כאשר הקורא לפונקציה משמיט ארגומנט. ערך התא הריק (256) מועבר כאשר הקורא לפונקציה מעביר הפניה לתא ריק.

לראש הדף

סוג הנתונים R - קריאה לפונקציות של Microsoft Excel מקבצי DLL

סוג הנתונים R הוא מצביע למבנה XLOPER, שהוא גירסה מורחבת של מבנה OPER. בגירסה 4.0 ואילך של Microsoft Excel, באפשרותך להשתמש בסוג הנתונים R לכתיבת קבצי DLL ומשאבי קוד המבצעים קריאה לפונקציות של Microsoft Excel. בעזרת מבנה XLOPER, פונקציית DLL יכולה להעביר הפניות גיליון וליישם בקרת זרימה, בנוסף להעברת נתונים. תיאור מלא של סוג הנתונים R וממשק תיכנות היישומים (API) של Microsoft Excel חורג מההיקף של נושא זה. המדריך למפתחים של Microsoft Office XP מכיל מידע מפורט אודות סוג הנתונים R, ממשק תיכנות היישומים של Microsoft Excel והיבטים טכניים רבים אחרים של Microsoft Excel.

לראש הדף

פונקציות נדיפות וחישוב מחדש

Microsoft Excel מחשב בדרך כלל פונקציות DLL (או משאבי קוד) רק בעת הזנה בתא, כאשר אחד מהתאים המזינים משתנה או כאשר התא מחושב במהלך פעולת מאקרו. בגליון עבודה, באפשרותך להפוך פונקציית DLL או משאב קוד לנדיפים, כלומר שהם מחושבים מחדש בכל פעם שגליון העבודה מחושב מחדש. כדי להפוך פונקציה לנדיפה, הוסף סימן קריאה (!) כתו האחרון בארגומנט type_text.

לדוגמה, ב- Microsoft Excel for Windows, נוסחת גליון העבודה הבאה מחושבת מחדש בכל פעם שהגיליון מחושב מחדש:

CALL("Kernel32","GetTickCount","J!")‎

לראש הדף

שינוי במקום - פונקציות שהוצהרו כריקות

באפשרותך להשתמש בספרה יחידה n עבור קוד סוג ההחזרה בארגומנט type_text, שבו n הוא מספר מ- 1 עד 9. פעולה זו מורה ל- Microsoft Excel לשנות את המשתנה במיקום שעליו מצביע הארגומנט מספר n ב- type_text, במקום להחזיר ערך. תכונה זו נקראת גם שינוי במקום. הארגומנט מספר n חייב להיות סוג נתונים המועבר על-ידי הפניה (C, ‏D, ‏E, ‏F,‏ G, ‏K, ‏L, ‏M, ‏N, ‏O, ‏P או R). כמו כן, הפונקציה DLL או משאב הקוד חייבים להיות מוצהרים עם מילת מפתח ריקה בשפת C (או מילת המפתח של הפרוצדורה בשפת פקסל).

לדוגמה, פונקציית DLL, המקבלת כארגומנטים מחרוזת המסתיימת ב- Null ושני מצביעים למספרים שלמים, יכולה לשנות את המחרוזת במקום. השתמש ב- "1FMM" כארגומנט של type_text והצהר על הפונקציה כריקה.

בגירסאות קודמות ל- Microsoft Excel 4.0 נעשה שימוש בתו < כדי לשנות את הארגומנט הראשון במקום; לא היתה כל דרך לשנות ארגומנט כלשהו, פרט לראשון. התו < שווה ערך ל- n = 1 ב- Microsoft Excel 4.0 ואילך.

לראש הדף

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

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

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

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

×