Professional Documents
Culture Documents
V Basic in Excel
V Basic in Excel
الدرس الثاني
تسجيل املاكرو
سنقوم بعمل المثال التالى معا للتعرف على تفاصيل خاصة بالكود والماكرو
وأتمنى أن يتم تنفيذه من قبل الدارس أو الراغب فى التعلم
المثال
ومن الممكن أن نضع عالمه ( _ ) بين كلمتين لو اردنا تسمية الماكرو بأسم مكون
من كلمتين مثال
– 2نجد ان هناك كلمه Ctrl +وبجوارها مربع
وتعنى أننا يمكن وضع أى حرف داخل هذا المربع ويكون وسيله إلستدعاء الماكرو
فيما بعد لتنفيذ المطلوب وهذا امر غير مطلوب حاليا سيتم توضيح ذلك فيما بعد ان
شاء الرحمن بالتفصيل
– 3هناك مستطيل به سهم رأسه الى األسفل
وتعنى اختيار من متعدد وهنا نقوم بإختيار الملف المراد تسجيل به الماكرو فى
حاله ان هناك مثال عدد ( ) 2ملف اكسل مفتوحين
– 4وهناك مربع آخر وهو الوصف المختصر لهذا الماكرو الذى سيتم تسجيله
وحاليا هذا األمر غير مطلوب
– 5نقوم بالضغط على زر OK
اختيار الملف
الوصف المختصر
مالحظات
قد تظهر عالمه تسجيل الماكرو بأسفل الشيت نقوم بالضغط عليها لتسجيل الماكرو
كما بالصورة
ثم بعد االنتهاء من تنفيذ المطلوب نقوم بالضغط على ايقاف التسجيل
كما بالصورة
النتائج والمالحظات
للدخول الى الصفحة التى بها الكود البرمجى والذى تم تسجيله تلقائيا فى موديول
نقوم بالضغط على ALT+F11معا
المالحظات :
تغيير اسم الكود الى اى اسم ..اى نقوم بتغيير كلمه Module1الى اى
كلمه أخرى قد تكون مع برة عن طبيعة عمل الكود أو حتى يمكننا وضع
اسمنا باللغة اإلنجليزية طبعا دون ترك مسافات ويمكننا االستعانة بوضع تلك
العالمه ( _ ) التى تسمى Under Scour
يمكننا التعديل واإلضافة داخل الكود البرمجى ايضا فى تغيير اسماء األعمده
والمدى وخالفه أو أى أمر آخر كما يترا ء لنا وسيأتى فيما بعد ذكر هذا األمر
فى الدروس القادمة بشىء من التفصيل
الدرس الثالث
إعدادات األمان
ثم نختار Trust Centerمن القائمة تظهر لنا نافذة أخرى كما
بالصورة
فإن كنا نثق بالبر نامج والمصدر نضغط على الخيار الثانى وهو
أى تكتب حسب الحاجه لها على أن تكون داله على الهدف منها
سواء كان تحذير من شىء أو طرح سؤال بسيط
مثال ( ) 1
نريد أن نتأكد من أن الطابعه فى وضع التشغيل وإعطاء المستخدم
فرصة للتأكد من ذلك مع توقف الماكرو عن العمل الى أن يقرر
المستخدم الضغط على زر موافق أو OK
جدير بالذكر
عند المالحظة األولى لشكل الرساله كما بالصورة السابقة
نجد نص الرساله
ثم زر OK
اذا اإلستنتاج هنا يدفعنا الى ذكر سؤال هام لمعرفة كيفية ظهورها
بهذا الشكل
ج :كالتالى
كلمة Promptتعنى ان تكون الرساله سريعه أى عند حدوث أمر ما تظهر
الرساله سريعا
Buttons تعنى األزرار ..وهو أمر اختياري ..يشمل تركيبة الزر وشكل
األيقونة المصاحبه له التى تظهر داخل نافذة صندوق الحوار ..
وهو تعبير رقمى سنتحدث عنه الحقا
Title تعنى العنوان الذى يظهر أعلى صندوق الحوار وهو اختيارى
ايضا ويعبر عنه بكلمات تدل على الهدف من الرساله واذا لم
يكت ب تلقائيا يتم وضع اسم التطبيق فى شريط العنوان
Helpfile تعنى ملف التعليمات ويعبر عنه بكلمات تهدف الى تقديم
المساعده للمستخدم وهو ايضا اختيارى
context تعنى السياق الخاص بالتعليمات التى يسجلها المبرمج ويعبر
عنه رقميا وسنتحدث عنه الحقا
– 3هناك معيار هام فى الرسائل عندما مثال تريد تحذير المستخدم الى ان الطابعه
تعمل مع التأكيد على ذلك بزر OK
هنا نستخدم الفواصل وهو امر ضرورى كمثل الرساله التالية
وكما الصورة
القيم الرقمية
التى سبق اإلشارة عنها
القيمة 32
القيمة 4
وإذا أردنا كتابة الرسالة بالترتيب الخاص بها كما ذكرنا بكيفية كتابة
الرساله فتكون هكذا
)(Sub example
Dim result As String
)"result = InputBox("Text?", "Title
وإذا أفترضنا أننا نريد أن يجعل االكسل يظهر االسم او الكلمه التى ستكتب
داخل هذا المربع
Msgbox result
وهى تعنى ظهور رساله تاليه بها الجملة التى تم ادخالها بالمربع
فتظهر الرساله
كما بالصورتيين التاليتين
وان شاء الرحمن سوف نتطرق ألمر األكواد بشىء من التفصيل فى
الدروس القادمة وما هو الفرق بين الكود داخل موديول أو بحدث الشيت
أو بحدث المصنف بالكامل
فعند محاولة الدخول للشيت الثانى تظهر لنا الرساله كما بالصورة التالية
– 4المتغيرات : Variables
– 5الثوابت : Constants
عند تخصيص قيمة للمتغير فإن هذه القيمة تأخذ أحد األشكال
التالية :
- 1قيمة مجردة X = 3
X=Y - 2متغير آخر
- 3عملية حسابية X = a + b
مالحظات :
القيمة الحرفية "" ال تساوى القيمة الحرفية " " حيث أن
األولى قيمة فارغة أما القيمة الثانية فهى عبارة عن
مجموعة من المسافات والمسافة لها قيمة.
يمكن جمع األرقام وأيضا النصوص وذلك باستخدام عالمات
الربط & أو عالمة +
مثال
Dim X , Y , Z as string
" X = " Deiaa
" Y = " Mahmoud
Z=X+Y
Thenالشرط IF
األوامر
End IF
مثال :
If x = 5 then
Y=x
End IF
نالحظ اآلتى :
Thenالشرط IF
مجموعة األوامر
Else
مجموعة األوامر
End IF
مثال :
If x = 5 then
Y=x
Else
Y=z
End If
Thenالشرط IF
مجموعة األوامر
Else IF
مجموعة األوامر
Else
مجموعة األوامر
End IF
نالحظ التالى :
-فى حالة عدم تحقق الشرط ال يتم تنفيذ األوامر التى تلى
كلمة Thenويتم االنتقال الختبار الشرط الثانى
المكتوب بعد كلمة Else IFويلي الشرط مباشرة كلمة
Thenأيضا .
مثال :
Thenالشرط IF
Thenالشرط IF
مجموعة األوامر
Else
مجموعة األوامر
End IF
Else
مجموعة األوامر
End IF
الشرح :
المالحظات :
وفى هذه الحالة سيتم إعادته مرة أخرى للبداية إلى العنوان
Start
- 3يمكن تسمية العناوين بأى اسم
مثال
( ) X – Y – Z – Yasserولكن يفضل أن يكون
االسم معبرا .
Case 100
الدالة Inputbox
تستخدم فى إدخال بيانات بواسطة المستخدم من خالل مستطيل يطلب منه إدخال البيان
المطلوب .
مثل
إدخال معدل الضريبة الكلى يتم حساب الضرائب التي تستقطع من العاملين
أو إدخال الراتب االساسى لموظف حساب صافى مستحقاته بعد إضافة الحوافز والمكافآت
وخصم الضريبة واالستقطاعات
مثال :
التعامل مع الكائنات
الكائنات Objects
الكائنات هي المكونات األساسية الى برنامج وهى األدوات
التي تحتوى على البيانات او تستخدم للتعامل مع البيانات
مثال ذلك الجداول والنماذج واالستعالمات والتقارير فى
Access
حممود زكى الشريف
| P a g e 46
Sub JANA2 ()
Application.DisplayFormulaBar = False
End Sub
Sub MZM5 ()
Application.WindowState = xlMaximized
End Sub
Sub MZM7 ()
Application.WindowState = xlNormal
End Sub
Sub MZM9 ()
Worksheets(1).Name = "sheet1"
End Sub
يقوم الكود بتحديد العمود الثاني بالمجال المشار إليه بين قوسين
)( Sub MZM16
Range("b10:f15").Columns(2).Value = 0
End Sub
يقوم الكود بكتابة قيمة صفر في العمود الثاني من المجال المحدد بين
القوسين
)( Sub MZM17
Range("c5:c10").Rows(1).Value = 100
End Sub
يقوم الكود بكتابة قيمة 122في الصف األول من المجال المحدد بين
القوسين وهو هنا الخلية C5
)( Sub MZM18
Range("d2:i10").Cells(2, 3).Select
End Sub
يقوم الكود بتحديد الخلية الواقعة في الصف الثاني من العمود الثالث
داخل المجال المحدد بين القوسين وهي الخلية F3
يقوم الكود بكتابة قيمة 122في المجال المحدد من الورقة الثالثة من
أوراق المصنف
تستخدم هذه الخاصية عند وجود بيانات متقطعة فهي تشير لكامل المجال
المستخدم
مثال
)( Sub MZM
)"With Cells(1, "D
" منتديات أوفيسنا التعليمية" = .Value
.Font.Bold = True
".Font.Name = "Arial
.Font.Size = 72
).Font.Color = RGB(0, 0, 250
.Columns.AutoFit
).Interior.Color = RGB(0, 255, 255
.Borders.Weight = xlThick
).Borders.Color = RGB(0, 0, 255
End With
End Sub
حممود زكى الشريف
| P a g e 56
بالكود السابق
عند الخلية األولى من العمود Dأعطها قيمة نصية " منتديات -
أوفيسنا التعليمية"
تغليظ الخط قم باستخدام نوع الخط Arial -
حجم الخط 20 -
اختيار اللون األزرق -
استخدم خاصية االحتواء المناسب لضبط النص داخل الخلية -
جعل الخلفية باللون التركوازى -
إحاطة الخلية برسم حد ذي حد غليظ -
اختيار للحد لونا أزرق -
قم بإنهاء جملة WITH -
جميع ما سبق الحديث عنه بالنسبة للمدى كان محدد ومعلوم ،أي أن
األبعاد ثابتة ومحددة مثل
الخلية A1
المدى A1 : H10
)(Sub MZM
Dim R1 As Range
Dim R2 As Range
Dim MAHMOUD As Range
)"Set R1 = Range("B2:C5
)"Set R2 = Range("F2:J5
)Set MAHMOUD = Union(r1, r2
With MAHMOUD
" .Value = "MAHMOUD ELSHRIEF
.Font.Size = 20
.Font.Bold = True
.Font.Italic = True
.Font.ColorIndex = 5
.Borders.Weight = xlMedium
).Borders.Color = RGB(0, 255, 255
.Interior.ColorIndex = 6
.Columns.AutoFit
End With
End Sub
المدى الديناميكى
ال يزال الحديث متصال بكائن النطاق RANGEوالذى استغرق منا تقريبا
معظم الحاالت
ولكن المالحظ فيما سبق أننا قد نحتاج من حين ألخر لزيادة أو إنقاص حجم
مساحة العمل أى المدى الذي نريد العمل ضمنه ،وبالتالي نضطر لتعديل
أبعاد المدى من داخل الكود
فمثال قد نعد تنسيقات لجدول بحجم ضخم ولكن ال نستخدم منه إال الجزء
اليسير وينتج عن ذلك
وجميع اسطر الكود تقريبا تم شرحها سابقا فيما عدا أن الكود ال يبدأ بكلمة
SUBالمعهودة وذلك ألنه مقترن بحدث التغيير بورقة العمل عند المجال
MYRANGEالديناميكي
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.RowHeight = 25
الكائن Window
Sub MZM ()
ActiveWindow.TabRatio = 0.5
End Sub
Sub MZM ()
ActiveWindow.TabRatio = 0
End Sub
End Sub
End Sub
End Sub
End Sub
End Sub
End Sub
End Sub
End Sub
End Sub
End Sub
End Sub