استخدام الدالتين CALL وREGISTER

هام: تمت ترجمة هذه المقالة ترجمة آلية، راجع إقرار إخلاء المسؤولية. يرجى الاطلاع على النسخة الإنجليزية من هذه المقالة. هنا للرجوع إليها.

هام: تنبيه    قد يؤدي تحرير السجل بطريقة غير صحيحة إلى حدوث تلف في نظام التشغيل مما يتطلب إعادة تثبيته. لا تضمن شركة Microsoft إمكانية حل المشكلات الناتجة عن تحرير السجل بشكل غير صحيح. قبل تحرير السجل، يُستحسن إجراء نسخة احتياطية لأي بيانات ذات قيمة. للحصول على أحدث المعلومات المتعلقة باستخدام سجل الكمبيوتر وحمايته، انظر تعليمات Microsoft Windows.

تصف هذه المقالة بناء جملة صيغة الدالات CALL وREGISTER وREGISTER.ID وطريقة استخدامها في Microsoft Excel.

ملاحظة: لا تتوفر الدالتان CALL وREGISTER في Excel Online.

في هذه المقالة

الوصف

أنواع البيانات

ملاحظات

معلومات إضافية عن أنواع البيانات

أنواع البيانات F وG

نوع البيانات K

نوع البيانات O

نوع البيانات P

نوع البيانات R — استدعاء دالات Microsoft Excel من مكتبات الارتباط الديناميكي (DLLs)

الدالات المتغيرة وإعادة الحساب

التعديل في المكان — دالات معرفة كدالات ملغاة

الوصف

توضح الأقسام التالية الوسيطات وأنواع بيانات القيمة المرجعة التي تستخدمها الدالات 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)

المرجع (ماكنتوش)

double
(Windows)‎

(ماكنتوش)*double

C

سلسلة خالية منتهية (الحد الأقصى لطول السلسلة = 255 حرفاً)

مرجع

char *‎

د

سلسلة محسوبة بالبايت (يحتوي البايت الأول على طول السلسلة، والحد الأقصى لطول السلسلة =255 حرفاً)

مرجع

*Unsigned char

E

رقم الفاصلة العائمة لـ IEEE ثمانية البايت

مرجع

double *‎

F

سلسلة خالية منتهية (الحد الأقصى لطول السلسلة = 255 حرفاً)

المرجع (تعديل في الموضع)

char *‎

G

سلسلة محسوبة بالبايت (يحتوي البايت الأول على طول السلسلة، والحد الأقصى لطول السلسلة =255 حرفاً)

المرجع (تعديل في الموضع)

*unsigned char

H

عدد صحيح ثنائي البايت دون مراعاة إشارته

قيمة

unsigned short int

I

عدد صحيح ثنائي البايت مع مراعاة إشارته

قيمة

short int

J

عدد صحيح رباعي البايت مع مراعاة إشارته

قيمة

long int

K

صفيف

مرجع

FP *‎

L

منطقي
‎(FALSE = 0, TRUE = 1)‎

مرجع

*short int

M

عدد صحيح ثنائي البايت مع مراعاة إشارته

مرجع

*short int

N

عدد صحيح رباعي البايت مع مراعاة إشارته

مرجع

*long int

O

صفيف

مرجع

يتم تمرير ثلاث وسيطات:
unsigned short int *‎
unsigned short int *‎
double [ ]‎

P

بنية بيانات OPER لـ Microsoft Excel

مرجع

OPER *‎

R

بنية بيانات XLOPER لـ Microsoft Excel

مرجع

XLOPER *‎

أعلى الصفحة

ملاحظات

  • تستند تعريفات لغة C إلى افتراض أن المحول البرمجي الذي تستخدمه تم تعيينه إلى مضاعفات 8 بايت، وأعداد صحيحة قصيرة ثنائية البايت، وأعداد صحيحة طويلة رباعية البايت افتراضياً.

  • في بيئة Microsoft Windows البرمجية، تكون كافة المؤشرات من النوع far. على سبيل المثال، يجب تحديد التعليمة البرمجية لنوع البيانات D كـ unsigned char far * في Microsoft Windows.

  • يتم استدعاء كافة الدالات في DLL وموارد التعليمات البرمجية باستخدام اصطلاح تسمية Pascal. تسمح لك معظم المحولات البرمجية للغة C باستخدام اصطلاح تسمية Pascal من خلال إضافة كلمة Pascal الأساسية إلى تعريف الدالات، كما يظهر في المثال التالي: pascal void main (rows,columns,a)

  • إذا استخدمت إحدى الدالات نوع بيانات يتم تمريره من خلال مرجع للقيمة مرجعة، يمكنك تمرير مؤشر null (خالي) كقيمة مرجعة. سوف يفسر Microsoft Excel المؤشر null (خالي) كقيمة الخطأ ‎#NUM!‎.

أعلى الصفحة

معلومات إضافية عن أنواع البيانات

يحتوي هذا الجزء على معلومات تفصيلية حول أنواع بيانات F وG وK وO وP وR ومعلومات أخرى حول الوسيطة type_text.

أنواع البيانات F وG

يمكن لدالة أن تقوم بتعديل مخزن مؤقت لسلسلة خصصها Microsoft Excel باستخدام أنواع البيانات F وG. إذا كانت التعليمة البرمجية لنوع القيمة المرجعة هي 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 لتمكين التوافق المباشر مع مكتبات الارتباط الديناميكي (DLLs) لدالة Fortran، التي تمرر الوسيطات حسب المرجع.

أعلى الصفحة

نوع البيانات P

يعتبر نوع البيانات P مؤشراً لبنية OPER. تتألف بنية OPER من بيانات ذات 8 بايت، متبوعة بالمعرف ثنائي البايت الذي يحدد نوع البيانات. يمكن لإحدى دالات DLL أو أحد موارد التعليمات البرمجية أخذ أي نوع من أنواع بيانات Microsoft Excel وإرجاعه باستخدام نوع البيانات P.

يتم تعريف بنية 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

Boolean (منطقي)

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 من مكتبات الارتباط الديناميكي (DLLs)

يعتبر نوع البيانات R مؤشراً لبنية XLOPER، وهو إصدار محسن من بنية OPER. في الإصدار 4.0 من Microsoft Excel وما يليه، يمكنك استخدام نوع البيانات R لكتابة DLL وموارد التعليمات البرمجية التي تستدعي دالات Microsoft Excel. يمكن لإحدى دالات DLL تمرير مراجع أوراق عمل والتحكم في تدفق التطبيق، بالإضافة إلى تمرير البيانات باستخدام بنية XLOPER. يعد الوصف الكامل لنوع البيانات R وواجهة التطبيق البرمجية لـ ‎Microsoft Excel (API)‎ خارج نطاق هذا الموضوع. يحتوي دليل Microsoft Office XP Developer على معلومات تفصيلية حول نوع البيانات R، وMicrosoft Excel API، والعديد من الأوجه الفنية الأخرى لـ Microsoft Excel.

أعلى الصفحة

الدالات المتغيرة وإعادة الحساب

يحتسب Microsoft Excel عادةً دالة DLL (أو مورد تعليمة برمجية) فقط عند إدخالها في خلية، أو عند تغيير إحدى الخلايا التابعة لها أو عند احتساب الخلية أثناء تشغيل ماكرو. في ورقة عمل، يمكنك جعل دالة DLL أو مورد تعليمة برمجية متغيرة، مما يعني أنها تعاود إجراء الحساب في كل مرة تعيد فيها ورقة العمل عملية الحساب. لجعل الدالة متغيرة، قم بإضافة علامة التعجب (!) كآخر حرف في وسيطة type_text.

على سبيل المثال، في Microsoft Excel لـ Windows، تجري صيغة ورقة العمل التالية عملية الحساب في كل مرة تعيد ورقة العمل الحساب:

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

أعلى الصفحة

التعديل في المكان — دالات معرفة كدالات ملغاة

يمكنك استخدام رقم مفرد n للتعليمة البرمجية المرجعة في type_text، حيث n عبارة عن رقم من 1 إلى 9. يؤدي ذلك إلى إعلام Microsoft Excel بتعديل المتغير في الموقع المشار إليه بواسطة رقم الوسيطة في type_text، بدلاً من إرجاع قيمة. يُعرف ذلك أيضاً بالتعديل في المكان. يجب أن تكون وسيطة الرقم من نوع بيانات تمرير للمرجع (C، أو D، أو E، أو F، أو G أو K أو L أو M أو N أو O أو P أو R). يجب أيضاً أن تكون دالة DLL أو مورد التعليمات البرمجية معرفاً بكلمة أساسية ملغاة في لغة C (أو إجراءات الكلمة الأساسية في لغة Pascal).

على سبيل المثال، يمكن لدالة DLL التي تأخذ سلسلة منتهية خالية ومؤشرين للأعداد الصحيحة كوسيطات أن تعدل السلسلة في مكانها. استخدم "1FMM" كوسيطة type_text وقم بتعريف الدالة كدالة ملغاة.

تستخدم الإصدارات التي تسبق الإصدار 4.0 من Microsoft Excel الحرف > لتعديل الوسيطة الأولى في المكان؛ ولا يوجد طريقة لتعديل أية وسيطة سوى الوسيطة الأولى. يكون الحرف > مكافئاً لـ n = 1 في الإصدار 4.0 من Microsoft Excel وما يليه.

أعلى الصفحة

ملاحظة: إقرار إخلاء المسؤولية للترجمة الآلية: تمت ترجمة هذه المقالة بواسطة نظام كمبيوتر دون تدخل العامل البشري. توفر Microsoft هذه الترجمات الآلية لمساعدة المستخدمين الذين لا يتحدثون الإنجليزية على استخدام منتجات Microsoft، وخدماتها، وتقنياتها والاستمتاع بها. قد تحتوي هذه المقالة على أخطاء في المفردات، أو بناء الجملة، أو القواعد نظرًا لترجمتها آليًا.

توسيع المهارات
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider

هل كانت المعلومات مفيدة؟

نشكرك على ملاحظاتك!

شكراً لك على الملاحظات! يبدو أنه من المفيد إيصالك بأحد وكلاء دعم Office لدينا.

×