إذا كنت تبحث عن تحويل الأرقام إلى حروف في اكسل فأمامك طريقان عمليان لا ثالث لهما: إمّا دالة تفقيط جاهزة تصلك عبر إضافة خارجية تُثبّتها على البرنامج، وإمّا كود VBA تكتبه بنفسك في صورة ماكرو يُسمّى SpellNumber. كلا الطريقين ينجح في التفقيط المبسّط — أي تحويل «1500» إلى «ألف وخمسمائة» — ويؤدي الغرض في الفواتير والتقارير الداخلية. لكن اعرف من البداية أن اكسل لا يتقن قواعد العدد والمعدود العربية، ولا يعرف صيغة «فقط.. لا غير» التي يختم بها المبلغ، ولا يميّز بين العملات التسع المعتمدة. وهذه بالضبط هي التفاصيل التي يحتاجها مبلغ الشيك، فتنبّه لها قبل أن تعتمد على حل اكسل في مستند حسّاس.
ما طريقة تحويل الأرقام إلى حروف في اكسل؟
يأتي برنامج اكسل قويًّا في الحساب والدوال النصية، لكنه يخلو من دالة تفقيط عربية مدمجة؛ فلا توجد دالة واحدة جاهزة تكتب لك الرقم بالحروف كما تكتب SUM مجموعًا أو TEXT صياغةً. لذلك لا مفرّ من أحد حلّين خارجيين: إضافة (add-in) تُدرج دالة عربية في قائمة الدوال، أو ماكرو VBA تلصقه في الملف فيصبح متاحًا كدالة.
والمقصود بالتفقيط ببساطة هو تحويل قيمة رقمية في الخلية إلى نص مكتوب بالحروف. فحين تكتب في الخلية العدد 1500 وتمرّره للدالة، تُخرج لك «ألف وخمسمائة» نصًّا يمكن نسخه ولصقه. ولو أضفت اسم العملة صار الناتج جملة مكتملة جاهزة للاستخدام في مستندك مباشرة.
خذ مثالًا مصريًّا واقعيًّا: موظف حسابات يجهّز إيصالًا بمبلغ 2500 جنيه، فيمرّر الرقم للدالة لتُخرج «ألفان وخمسمائة جنيه» بدلًا من كتابتها يدويًّا في كل إيصال. هذا هو جوهر الفكرة.
وحتى تسير معنا بترتيب واضح، سنمرّ في هذا الدليل على ثلاث محطات: أولًا دالة الإضافة الخارجية، ثم كود VBA خطوة بخطوة، وأخيرًا حدود اكسل الحقيقية في قواعد المعدود التي تجعله غير كافٍ لمبلغ الشيك.
هل توجد دالة تفقيط جاهزة في اكسل؟
الإجابة المباشرة: لا توجد دالة تفقيط عربية أصلية ضمن دوال اكسل المدمجة. فكل الدوال المعروفة مثل SUM وIF وTEXT تتعامل مع الأرقام والنصوص حسابيًّا وتنسيقيًّا، لكن لا واحدة منها تنطق الرقم حروفًا بالعربية.
قد تسمع عن دالة اسمها SpellNumber وتظنها جزءًا من البرنامج، والحقيقة أنها ليست دالة مدمجة؛ إنما هي ماكرو VBA شائع تنشره مايكروسوفت وغيرها كنموذج يُلصق يدويًّا في كل ملف على حدة. فإن فتحت ملفًّا جديدًا لم تجدها موجودة حتى تعيد إضافتها.
يبقى الخيار الثاني وهو إضافات الطرف الثالث (add-ins). هذه الإضافات تُدرج فعلًا دالة عربية جاهزة في قائمة الدوال، لكنها تحتاج تثبيتًا على جهازك، وغالبًا لا تنتقل مع الملف حين ترسله لزميل على جهاز آخر لم يثبّت الإضافة، فيرى مكان الناتج خطأً بدل النص. وهذا عيب عملي مهم في بيئة عمل يتنقل فيها الملف بين أكثر من موظف.
وحتى تختار بين الحلّين على بيّنة، وازن بينهما بمعايير عملية: الإضافة الخارجية أسهل في الاستخدام لأنها تعطيك دالة جاهزة بلا كتابة كود، لكنها مرتبطة بالجهاز الذي ثُبّتت عليه، وقد تتوقف عن العمل بعد تحديث نسخة اكسل أو تحتاج ترخيصًا. أما ماكرو VBA فيتنقل داخل الملف نفسه ما دام محفوظًا بصيغة تدعم الماكرو، فلا يعتمد على تثبيت مسبق، لكنه يصطدم بإعدادات أمان الماكرو: كثير من الأجهزة والمؤسسات تعطّل تشغيل وحدات VBA افتراضيًّا حمايةً من الأكواد الضارة، فيظهر الملف وكأن الدالة لا تعمل حتى يسمح المستخدم بتشغيل المحتوى يدويًّا. الخلاصة العملية: الإضافة أريح للمستخدم الواحد على جهاز ثابت، والماكرو أنسب حين ينتقل الملف بين زملاء لكن بشرط ضبط صلاحيات الأمان.
نقطة أخيرة ينساها كثيرون: الدوال النصية في النسخ الإنجليزية من اكسل، إن وُجدت أدوات تفقيط داخلها، تُخرج نصًّا إنجليزيًّا مثل «One Thousand Five Hundred» لا نصًّا عربيًّا. فلا تظنّ أن ضبط لغة العرض وحده يكفي لتعريب الناتج.
كيف تكتب كود VBA لكتابة الرقم بالحروف في excel؟
الطريق العملي الأكثر انتشارًا هو كتابة ماكرو VBA يؤدي مهمة الدالة الغائبة. وفيما يلي الخطوات مقسّمة قسمين: إضافة الكود أولًا، ثم استدعاؤه داخل الخلية.
خطوات إضافة ماكرو التفقيط في محرر VBA
ابدأ بفتح محرر الأكواد عبر الضغط على Alt+F11، فتظهر لك نافذة محرر VBA. من القائمة العلوية اختر Insert ثم Module لإنشاء وحدة برمجية فارغة تستقبل الكود.
الصق داخل هذه الوحدة دالة SpellNumber كاملة. وفكرة عملها أنها تبني النص تدريجيًّا من مكوّنات الرقم: تقرأ الآحاد، ثم العشرات، ثم المئات، ثم الآلاف، وتجمّع الكلمات في جملة واحدة. فالرقم 1500 يُقرأ عندها كـ «ألف» زائد «خمسمائة».
انتبه لنقطة تُوقع كثيرين: بعد لصق الكود، احفظ الملف بصيغة تدعم الماكرو وهي xlsm. لو حفظته بالصيغة العادية xlsx فسيحذف اكسل الكود عند الإغلاق وتفاجأ بأن الدالة اختفت في المرة القادمة.
كيف تستدعي الدالة داخل الخلية؟
بعد الحفظ صارت الدالة متاحة كأي دالة عادية. اكتب في أي خلية SpellNumber(A1) مثلًا، فيقرأ الماكرو القيمة الموجودة في الخلية A1 ويعيد نصها بالحروف في الخلية التي كتبت فيها الدالة. ويمكنك سحب الدالة لأسفل لتطبيقها على عمود أرقام كامل دفعة واحدة.
لكن استعدّ لبعض العثرات التي تلازم حلّ الماكرو. أشهرها خطأ #NAME? الذي يظهر في الخلية حين لا يتعرّف اكسل على الدالة أصلًا — وذلك إمّا لأن الماكرو معطّل بإعدادات الأمان، أو لأنك نسخت الصيغة إلى ملف آخر لم يُنسخ إليه الكود. كذلك يتعامل الماكرو الأساسي بشكل خام مع الحالات الطرفية: قد يعيد للصفر نصًّا فارغًا أو كلمة «صفر» حسب طريقة كتابته، وقد لا يتوقّع الأرقام السالبة فيعطي نتيجة غير منطقية، وقد يقصّر مع الأرقام الكبيرة جدًّا التي تتجاوز حدود المراتب المبرمجة فيه. كل حالة من هذه تحتاج منك تعديلًا يدويًّا في الكود، وهو ما يجعل صيانة الماكرو عبئًا متجدّدًا كلما تنوّعت مدخلاتك.
يبقى تنبيه جوهري: الماكرو الأساسي المتداول يتجاهل الخانات العشرية غالبًا، فيقرأ الجزء الصحيح وحده ويهمل الكسور. لذا إن كان لديك مبلغ مثل «1500.50» ففي الأغلب ستحتاج معالجة القروش يدويًّا أو تعديل الكود ليضيف جملة الفكّة بنفسك، وهذا في حدّ ذاته باب أخطاء إضافي.
لماذا يفشل تفقيط اكسل في قواعد العدد والمعدود؟
هنا تظهر الفجوة الحقيقية. التفقيط الصحيح لا يعني تجميع كلمات فحسب، بل ضبط شكل «المعدود» — أي الكلمة التي تلي العدد — وهذا ما لا تفرّق فيه الدالة ولا الماكرو بين حالات الجرّ والنصب والجمع. فيثبت اكسل على شكل واحد للكلمة مهما تغيّر العدد قبلها، فتخرج «خمسة جنيه» و«أحد عشر جنيه» بالشكل الخاطئ نفسه.
ولإثبات هذا العجز، انظر كيف يبقى ناتج اكسل ثابتًا على «جنيه» في المبالغ التالية بينما يفترض أن يتغيّر شكل الكلمة في كل سطر:
| المبلغ رقمًا | ناتج اكسل للمعدود |
|---|---|
| 2 | جنيه |
| 5 | جنيه |
| 15 | جنيه |
| 100 | جنيه |
الشكل الصحيح لكل حالة — ومتى يكون المعدود مجرورًا أو منصوبًا أو مجموعًا — تجده مفصّلًا في قواعد كتابة الأرقام بالحروف في العربية، فهو موضوع دليل مستقل لا هذه الصفحة.
فوق ذلك، لا يُنتج اكسل صيغة «فقط.. لا غير» التي تُختم بها المبالغ لإغلاق النص ومنع أي إضافة بعده، وهي صيغة أساسية في المستندات المالية. كما أنه لا يميّز بين العملات — فلا يعرف أن هذه جنيهات وتلك ريالات أو دراهم — ولا يفصل بين الوحدة الأساسية وفكّتها كالجنيه والقرش.
أما تفاصيل كتابة مبلغ الشيك نفسه بالحروف فمكانها دليل كتابة الشيك بالعربي وكتابة مبلغه بالحروف لا هذه الصفحة.
ما البديل الأدق لدالة التفقيط في اكسل؟
حين يكون المطلوب مبلغًا قانونيًّا مضبوطًا لا مجرد رقم في تقرير، فالأدق أن تستعين بـ أداة تفقيط جاهزة على الويب تطبّق قواعد العدد والمعدود وتدعم العملات وتختم النص بصيغة «فقط.. لا غير» تلقائيًّا، بلا كود ولا ماكرو ولا إضافة تُثبّتها. تكتب الرقم فيعطيك الجملة كاملة صحيحة لغويًّا في الحال، ويمكنك تجربة أداة تفقيط الأرقام إلى حروف أونلاين مباشرة.
ولمن يوازن بين حل اكسل المجاني وحل متخصص أوسع، وضّحنا الفروق العملية في مقارنة شيت اكسل مقابل برنامج طباعة الشيكات حتى تختار ما يناسب حجم عملك.
الخلاصة: يكفيك اكسل تمامًا للتفقيط المبسّط في الفواتير والتقارير الداخلية، ودالة الإضافة أو ماكرو VBA حلٌّ سريع ومجاني لذلك. أما حين يتعلّق الأمر بمبلغ الشيك القانوني الذي لا يحتمل خطأً في المعدود ولا نقصًا في صيغة الختم، فالأولى أداة متخصصة تتقن اللغة بدل الاتّكاء على حلٍّ لم يُصنع لهذا الغرض.