كيف يمكنك حفظ ماكرو VBA الخاص بك واستخدامه في جميع ملفات العمل في Excel؟
ثمة العديد من السيناريوهات التي قد تحتاج فيها إلى استخدام ماكرو VBA نفسه مرارًا وتكرارًا عبر ملفات مصنفات Excel مختلفة، لأداء مهام مثل أتمتة الحسابات المتكررة، أو تنسيق البيانات، أو تنفيذ دوال مخصصة كتحويل الأرقام إلى كلمات. لكن التحدي الشائع يكمن في أن الماكرو يُخزَّن افتراضيًّا داخل ملف العمل الذي أُنشئ فيه فقط، ما يعني أنه لا يمكنك الوصول إليه أو إعادة استخدامه بسهولة في مستندات جديدة. لحسن الحظ، يوفّر Excel عدة طرق مرنة لجعل ماكرو VBA متاحًا عالميًّا، مما يلغي الحاجة إلى نسخ الكود يدويًّا في كل مرة تبدأ فيها ورقة عمل جديدة. ويقدّم هذا البرنامج التعليمي إرشادات شاملة حول الطرق المختلفة لضمان توفر ماكرو VBA الخاص بك بسهولة عبر جميع ملفات العمل، وبالتالي تعزيز إنتاجيتك وتحسين سير عملك.

حفظ واستخدام كود VBA في جميع ملفات العمل
طريقة ملف ماكرو الشخصي
على سبيل المثال، افترض أنك تريد تحويل الأرقام إلى كلمات إنجليزية مكافئة باستخدام كود VBA مخصص، وترغب في ضمان توفر هذه الميزة دائمًا بغض النظر عن ملف العمل الذي تستخدمه. وباستخدام الطريقة الصحيحة، يمكنك حفظ وحدات VBA الخاصة بك لتكون قابلة لإعادة الاستخدام متى احتجت إليها في Excel—وهو أمرٌ مثالي خصوصًا للدوال المخصصة أو عمليات الأتمتة التي ترغب في جعلها متاحة تلقائيًا دون الحاجة إلى إعادة كتابة الكود في كل ملف على حدة.
للقيام بذلك، يمكنك تغليف كود VBA الخاص بك في إضافة Excel مخصصة، والتي يمكن تفعيلها في Excel لتوفير وظيفتك المخصصة كدالة متاحة عالميًّا.
اتبع الخطوات التالية:
1. اضغط علىAlt + F11في Excel لفتح نافذة «Microsoft Visual Basic for Applications».
2. في محرر VBA، انقر علىإدراج > وحدة، ثم الصق الماكرو التالي في نافذة الوحدة الجديدة.
كود VBA: تحويل تحويل إلى كلمات
Function NumberstoWords(ByVal MyNumber)
'Update by ExtendofficeDim xStr As StringDim xFNum As IntegerDim xStrPointDim xStrNumberDim xPoint As StringDim xNumber As StringDim xP() As VariantDim xDPDim xCnt As IntegerDim xResult, xT As StringDim xLen As IntegerOn Error Resume NextxP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP >0 ThenxPoint = " point "
xStr = Mid(xNumber, xDP +1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum =1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum,1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNumxNumber = Trim(Left(xNumber, xDP -1))
End IfxCnt =0xResult = ""
xT = ""
xLen =0xLen = Int(Len(Str(xNumber)) /3)
If (Len(Str(xNumber)) Mod3) =0 Then xLen = xLen -1Do While xNumber <> ""
If xLen = xCnt ThenxT = GetHundredsDigits(Right(xNumber,3), False)
ElseIf xCnt =0 ThenxT = GetHundredsDigits(Right(xNumber,3), True)
ElsexT = GetHundredsDigits(Right(xNumber,3), False)
End IfEnd IfIf xT <> "" ThenxResult = xT & xP(xCnt) & xResultEnd IfIf Len(xNumber) >3 ThenxNumber = Left(xNumber, Len(xNumber) -3)
ElsexNumber = ""
End IfxCnt = xCnt +1LoopxResult = xResult & xPointNumberstoWords = xResultEnd FunctionFunction GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As StringDim xStrNum As StringDim xStr As StringDim xI As IntegerDim xBB As BooleanxStrNum = xHDgtxRStr = ""
On Error Resume NextxBB = TrueIf Val(xStrNum) =0 Then Exit FunctionxStrNum = Right("000" & xStrNum,3)
xStr = Mid(xStrNum,1,1)
If xStr <> "0" ThenxRStr = GetDigits(Mid(xStrNum,1,1)) & "Hundred "
ElseIf xB ThenxRStr = "and "
xBB = FalseElsexRStr = " "
xBB = FalseEnd IfEnd IfIf Mid(xStrNum,2,2) <> "00" ThenxRStr = xRStr & GetTenDigits(Mid(xStrNum,2,2), xBB)
End IfGetHundredsDigits = xRStrEnd FunctionFunction GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As StringDim xI As IntegerDim xArr_1() As VariantDim xArr_2() As VariantDim xT As BooleanxArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = TrueOn Error Resume NextIf Val(Left(xTDgt,1)) =1 ThenxI = Val(Right(xTDgt,1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
ElsexI = Val(Left(xTDgt,1))
If Val(Left(xTDgt,1)) >1 ThenIf xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt,1)))
xT = FalseEnd IfIf xStr = "" ThenIf xB ThenxStr = "and "
End IfEnd IfIf Right(xTDgt,1) <> "0" ThenxStr = xStr & GetDigits(Right(xTDgt,1))
End IfEnd IfGetTenDigits = xStrEnd FunctionFunction GetDigits(xDgt)
Dim xStr As StringDim xArr_1() As VariantxArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume NextxStr = xArr_1(Val(xDgt))
GetDigits = xStrEnd Function 3. الآن، انقر على أيقونة «حفظ» في الزاوية العلوية اليسرى من النافذة أو اضغط ببساطة علىCtrl + Sلفتح مربع حوار «حفظ باسم».
4. في نافذة «حفظ باسم»، أدخل اسم الملف المطلوب في حقل «اسم الملف». ومن قائمة «تحديد تنسيق الحفظ» المنسدلة، تأكد من اختيارإضافة Excel (*.xlam).
5. انقر على زر «حفظ» لتخزين ملف العمل الخاص بك كملف إضافة Excel، مما يُنشئ إضافة قابلة لإعادة الاستخدام يمكنك تفعيلها في أي وقت مع أي ملف عمل.
6. بعد الحفظ، عُد إلى Excel وأغلق ملف العمل الذي قمتَ للتو بتحويله إلى إضافة.
7. افتح ملف عمل جديدًا أو موجودًا ترغب في استخدام الماكرو فيه، ثم أدخل الصيغة المخصصة في الخلية المناسبة (مثل B2):
=NumberstoWords(A2) 
8. انتقل إلى علامة التبويبالمطور، ثم انقر على زرإضافات Excelفي مجموعة الإضافات.
9. في مربع حوار الإضافات الذي يظهر، اختراستعراض.
10. ابحث عن ملف الإضافة الذي حفظته سابقًا، وحدّده، ثم انقر علىموافق.
11. يجب أن تظهر الآن إضافتك المخصصة، مثل «إضافة تحويل الرقم إلى كلمات»، في قائمة الإضافات. تأكد من تحديدها وانقر علىموافقلتفعيلها.
12. الآن، أعد إدخال الدالة المخصصة في الخلية المستهدفة (مثل B2)، ثم اضغط علىEnter. سترى أن الصيغة تُرجع الكلمات الإنجليزية الصحيحة للرقم.
=NumberstoWords(A2) 13. لتطبيق صيغة التحويل بسرعة على أرقام متعددة، اسحب مقبض الملء التلقائي للخلية لأسفل لنسخ الدالة إلى الخلايا الأخرى.

نصائح وملاحظات:
- يتيح لك حفظ ماكرو الخاص بك كإضافة استخدام نفس الدوال المخصصة أو الكود أو عمليات التشغيل الآلي عبر جميع ملفات العمل، مما يوفّر وقتك ويضمن اتساقًا مثاليًّا.
- إذا تم إغلاق Excel أو تعطيل الإضافة لاحقًا، فقد تُظهر الدوال من الإضافة مؤقتًا «#NAME؟» حتى تُحمَّل الإضافة مجددًا. ولتجنب أي التباس، تأكد دائمًا من تفعيل الإضافة في «مدير الإضافات» كلما احتجت إليها.
- قد لا يظهر علامة التبويب «المطور» تلقائيًا لبعض المستخدمين. ولتمكينها، انقر بزر الماوس الأيمن على الشريط، واختر «تخصيص الشريط»، ثم فعّل خيار «المطور».
- من الممارسات الجيدة تخزين الإضافات في مجلد دائم لتجنب فقدان المراجع عند نقل الملفات أو إعادة تسميتها.
إذا كنت تفضل تشغيل الكود يدويًّا، فهذا ممكن أيضًا وأحيانًا يكون مفيدًا أثناء تصحيح الأخطاء أو للاستخدام العرضي:
- يمكنك تعيين ماكرو إلى شريط أدوات الوصول السريع لتنفيذه بنقرة واحدة في أي ملف عمل مرئي. للقيام بذلك، انقر بزر الماوس الأيمن على شريط أدوات الوصول السريع، واختر «تخصيص شريط أدوات الوصول السريع»، ثم أضف ماكرو الخاص بك.

- يمكنك أيضًا الضغط علىAlt + F11 لفتح محرر VBA، ثم تحديد ماكرو الخاص بك يدويًّا والضغط علىF5 لتشغيل الكود حسب الحاجة.
المزايا:تتيح لك هذه الحلول إنشاء ومشاركة وظائف ماكرو غنية وقابلة لإعادة الاستخدام، تعمل تلقائيًا طالما أن الإضافة مفعّلة.
السلبيات:يجب على المستخدمين تذكّر تحميل الإضافة، وإذا كانوا يشاركون ملفات العمل، فعليهم أيضًا مشاركة ملف الإضافة وتفاصيل الدالة. علاوةً على ذلك، لا يمكن استخدام الإضافات في Excel عبر الإنترنت.
طريقة أخرى عملية للغاية لضمان أن يكون ماكروك المفضل أو الأكثر استخدامًا جاهزًا في كل جلسة Excel، بغض النظر عن ملف العمل المفتوح، هي استخدام ملف الماكرو الشخصي (PERSONAL.XLSB). هذا ملف Excel خاص ومُخفي يتم تحميله تلقائيًّا في كل مرة تُشغِّل فيها Excel، مما يجعل أي ماكرو محفوظ بداخله متاحًا عبر جميع ملفات العمل المفتوحة.
السيناريوهات المناسبة:مثالية للأتمتة الشخصية، أو نصوص التنسيق الروتينية، أو دوال الأدوات التي لا تحتاج إلى مشاركتها كإضافات رسمية في Excel. تكون الماكرو المحفوظة في PERSONAL.XLSB متاحة على جهاز الكمبيوتر الخاص بك بغض النظر عن الملف المفتوح.
المزايا:تتوفر وحدات الماكرو عالميًا لملف تعريف Excel المحلي الخاص بك، ولا تتطلب تثبيت أي إضافات أو ملفات خارجية.
العيوب:يمكن استخدام الوحدات المخزَّنة بهذه الطريقة فقط على الحاسوب والحساب الذي يحتوي على ملف PERSONAL.XLSB. وللمشاركة مع الآخرين، يلزمك تصدير الوحدات واستيرادها يدويًّا.
- لاستخدام هذه الطريقة، عليك أولًا تسجيل ماكرو أو إنشاؤه، ثم التأكد من حفظه في ملف الماكرو الشخصي الخاص بك.
اتبع الخطوات التالية:
- افتح Excel. في علامة التبويبعرض، انقر علىماكرو، ثم علىتسجيل ماكرو.
- في مربع الحوار، ضمن «تخزين الماكرو في»، اخترملف ماكرو الشخصي. ثم أكمل التسجيل (يمكنك إيقافه فورًا إذا لم تكن هناك حاجة إليه).
- اضغط علىAlt + F11 للدخول إلى محرر VBA، حيث ستجد مشروعًا باسم PERSONAL.XLSB. هنا، يمكنك إدراج وحدة جديدة أو لصق كود الماكرو المطلوب.
- احفظ التغييرات. يقوم Excel تلقائيًّا بإنشاء ملف PERSONAL.XLSB والحفاظ عليه في مجلد بدء التشغيل الخاص به.
- يمكنك بعد ذلك تشغيل الماكرو المحفوظ في PERSONAL.XLSB من خلال مربع حوارماكرو (Alt + F8)، أو تعيينه إلى الشريط أو أزرار شريط الأدوات، أو استدعائه من VBA.
استكشاف الأخطاء وإصلاحها والصيانة:إذا لم تكن وحدات الماكرو في ملف PERSONAL.XLSB متاحة، فتحقق أولًا مما إذا كان Excel يفتح في الوضع الآمن أو كانت إعدادات أمان الماكرو مضبوطة على «تعطيل جميع الماكرو». علاوةً على ذلك، يُعدّ ملف PERSONAL.XLSB مخفيًّا افتراضيًّا؛ لذا إذا قمت عن طريق الخطأ بإغلاقه دون حفظه أو حذفته، فقد تحتاج إلى إعادة تسجيل ماكرو لإعادة إنشائه.
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSBكود VBA لإدراج قائمة بجميع الإضافات في Excel
في Excel، قد تضيف أو تُدرِج بعض الإضافات لتحسين التعامل مع البيانات. وكما تعلم، يمكنك الانتقال إلى نافذة الخيارات لعرض جميع الإضافات، ولكن هل هناك طريقة لإدراج قائمة بها مباشرةً في ورقة العمل؟ في هذا البرنامج التعليمي، نقدّم لك كود VBA الذي يُدرج قائمة بجميع الإضافات في Excel!
كيفية تشغيل ماكرو VBA عند فتح أو إغلاق ملف العمل؟
في هذه المقالة، سأوضح لك كيفية تشغيل كود VBA تلقائيًا كلما تم فتح ملف العمل أو إغلاقه.
كيفية حماية أو قفل كود VBA في Excel؟
تمامًا كما يمكنك استخدام كلمة مرور لحماية ملفات العمل وأوراق العمل، يمكنك أيضًا تعيين كلمة مرور لحماية ماكرو Excel.
كيفية استخدام تأخير زمني بعد تشغيل ماكرو VBA في Excel؟
قد تحتاج في بعض الأحيان إلى إضافة تأخير زمني قبل تنفيذ ماكرو VBA في Excel. على سبيل المثال، عند النقر لتشغيل ماكرو معيّن، يبدأ تأثيره بعد مرور 10 ثوانٍ. تُظهر لك هذه المقالة كيفية تحقيق ذلك بسهولة.
أفضل أدوات الإنتاجية لمكتبتك
عزِّز مهاراتك في Excel باستخدام Kutools لـ Excel، وعايش الكفاءة كما لم تفعل من قبل.يقدّم Kutools لـ Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية ووقت الحفظ.انقر هنا للحصول على الميزة التي تحتاجها أكثر من غيرها...
يجلب Office Tab واجهة ذات علامات تبويب إلى Office، ويجعل عملك أسهل بكثير
- تمكّن من التحرير والقراءة باستخدام علامات التبويب في Word وExcel وPowerPoint، وPublisher وAccess وVisio وProject.
- افتح وأنشئ مستندات متعددة في علامات تبويب جديدة داخل النافذة نفسها، بدلاً من فتح نوافذ جديدة.
- يزيد إنتاجيتك بنسبة 50% ويوفّر لك مئات نقرات الفأرة كل يوم!
جميع الإضافات من Kutools في برنامج تثبيت واحد!
Kutools for Office حزمةٌ تحتوي على إضافاتٍ مخصصة لتطبيقات Excel وWord وOutlook وPowerPoint، إلى جانب Office Tab Pro، مما يجعلها الخيار المثالي للفِرق التي تعمل عبر تطبيقات Office.
- حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
- برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
- يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
- تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
- أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل
