دليل العمل الكامل مع Worksheets using Excel VBA
يعد العمل مع أوراق العمل Worksheets مجالا آخر يجب أن تعرفه لاستخدام VBA بكفاءة في Excel.تماما مثل أي كائن في VBA ، تحتوي أوراق العمل على خصائص وطرق مختلفة مرتبطة بها يمكنك استخدامها أثناء عملك باستخدام VBA في Excel.في هذا الدليل التعليمي ، سأغطي “أوراق العمل” بالتفصيل وسأعرض لك أيضا بعض الأمثلة العملية ليكون دليل تعليمي كامل عند العمل مع Worksheets.
لذلك دعونا نبدأ.
الفرق بين Worksheets and Sheets in VBA حسب موقع مايكروسوفت
The Worksheet object is a member of the Worksheets collection. The Worksheets collection contains all the Worksheet objects in a workbook.
The Worksheet object is also a member of the Sheets collection. The Sheets collection contains all the sheets in the workbook (both chart sheets and worksheets).
https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet
معني ذلك مايلي
كائن ورقة العمل Worksheetعضو في مجموعة أوراق العمل Worksheets. تحتوي مجموعة أوراق العمل على كافة كائنات ورقة العمل الموجودة في المصنف.
يعد كائن ورقة العمل أيضًا عضوًا في مجموعة الأوراق Sheets. تحتوي مجموعة الأوراق على جميع الأوراق الموجودة في المصنف (أوراق المخططات Chart Sheets و أوراق العمل Worksheets)
في المصنف ، يمكن أن يكون لديك أوراق عمل وكذلك أوراق مخطط. يحتوي المثال أدناه على ثلاث أوراق عمل وورقة مخطط واحدة.
In Excel VBA:
- تشير مجموعة “أوراق العمل” Worksheets إلى مجموعة كافة كائنات ورقة العمل في المصنف. في المثال أعلاه ، ستتألف مجموعة أوراق العمل من ثلاث أوراق عمل.
- تشير مجموعة “الأوراق” Sheetsإلى جميع أوراق العمل بالإضافة إلى أوراق المخططات في المصنف. في المثال أعلاه ، سيحتوي على أربعة عناصر – 3 أوراق عمل + 1 ورقة مخطط.
إذا كان لديك مصنف يحتوي فقط على أوراق عمل ولا يحتوي على أوراق مخطط ، فإن مجموعة “أوراق العمل” و “الأوراق” هي نفسها.
ولكن عندما يكون لديك ورقة مخطط واحدة أو أكثر ، ستكون مجموعة “الأوراق” أكبر من مجموعة “أوراق العمل”
Sheets = Worksheets + Chart Sheets
الآن مع هذا التمييز ، أوصي بأن تكون محددا قدر الإمكان عند كتابة كود VBA.
لذلك إذا كان عليك الرجوع إلى أوراق العمل فقط ، فاستخدم مجموعة “أوراق العمل” ، وإذا كان عليك الرجوع إلى جميع الأوراق (بما في ذلك أوراق المخططات) ، فاستخدم مجموعة “الأوراق”.
Referencing a Worksheet in VBA الاشارة الي ورقة عمل
هناك العديد من الطرق المختلفة التي يمكنك استخدامها للإشارة إلى ورقة عمل في VBA.
سيساعدك فهم كيفية الرجوع إلى أوراق العمل على كتابة تعليمات برمجية أفضل ، خاصة عند استخدام الحلقات في التعليمات البرمجية ل VBA الخاصة بك.
Using the Worksheet Name بإستخدام أسم ورقة العمل
أسهل طريقة للإشارة إلى ورقة العمل هي استخدام اسمها. ويكون بهذا الشكل ويوضع الاسم بين قوسين وداخل علامتي تنصيص
Worksheets(“اسم ورقة العمل المستهدفة “).Activate
على سبيل المثال ، افترض أن لديك مصنفا يحتوي على ثلاث أوراق عمل – الورقة 1 ، الورقة 2 ، الورقة 3.
وتريد تنشيط الورقة 2.
Sub ActivateSheet()
Worksheets(“Sheet2”).Activate
End Sub
يطلب الكود أعلاه من VBA الرجوع إلى الورقة 2 في مجموعة أوراق العمل وتنشيطها.
نظرا لأننا نستخدم اسم الورقة الدقيق ، يمكنك أيضا استخدام مجموعة Sheetsهنا. لذا فإن الكود أدناه سيفعل نفس الشيء أيضا.
Sub ActivateSheet()
Sheets(“Sheet2”).Activate
End Sub
Using the Index Number بإستخدام الرقم الفهرسي
الـ “Index Number” (رقم الفهرس) عند الإشارة إلى ورقة عمل في مصنف في Excel VBA هو رقم يحدد موقع ورقة العمل ضمن مجموعة الأوراق في المصنف. يمكنك استخدام هذا الرقم للإشارة إلى ورقة عمل محددة دون الحاجة إلى معرفة اسمها.ويوضع هذا الرقم بين قوسين فكل ورقة في المصنف لها رقم فهرس فريد يتوافق مع ترتيبها في المصنف. على سبيل المثال، الورقة الأولى التي تظهر في المصنف ستكون لها Index Number = 1، الورقة التالية Index Number = 2، وهكذا
في هذه الحالة ، يمكنك استخدام رقم فهرس أوراق العمل.
افترض أن لديك الأوراق التالية في مصنف:
سيقوم الكود أدناه بتنشيط الورقة 2:
Sub ActivateSheet()
Worksheets(2).Activate
End Sub
لاحظ أننا استخدمنا الفهرس رقم 2 في أوراق العمل (2). قد يشير هذا إلى الكائن الثاني في مجموعة أوراق العمل.
الآن ، ماذا يحدث عند استخدام 3 كرقم فهرس؟
ستختار الورقة 3.
إذا كنت تتساءل عن سبب تحديد الورقة 3 ، فمن الواضح أنها الكائن الرابع وذلك حسب موقعها .
يحدث هذا لأن ورقة المخطط ليست جزءا من مجموعة أوراق العمل.
لذلك عندما نستخدم أرقام الفهرس في مجموعة أوراق العمل Worksheets ، فإنها ستشير فقط إلى أوراق العمل الموجودة في المصنف (وتتجاهل أوراق المخططات Chart Sheets )
على العكس من ذلك ، إذا كنت تستخدم Sheets فإن الأوراق (1) ستشير إلى الأوراق 1 ، وستشير الأوراق (2) إلى الورقة 2 ، وستشير الأوراق (3) إلى ,ورقة المخطط 1 ، وستشير الأوراق (4) إلى الورقة 3.
تعد تقنية استخدام رقم الفهرس هذه مفيدة عندما تريد التكرار الحلقي عبر كافة أوراق العمل في مصنف. يمكنك حساب عدد أوراق العمل ثم تكرارها باستخدام هذا العدد (سنرى كيفية القيام بذلك لاحقا في هذا الدليل التعليمي ).
ملاحظة: ينتقل رقم الفهرس من اليسار إلى اليمين. لذلك إذا قمت بتحويل الورقة 2 إلى يسار الورقة 1 ، فإن أوراق العمل (1) ستشير إلى الورقة 2.
Using the Worksheet Code Name استخدام الاسم الكودي
الاسم الكودي هو إسم فريد لورقة العمل ولا يتكرر فى المصنف لورقة عمل أخري
أحد عيوب استخدام اسم الورقة (كما رأينا في القسم أعلاه) هو أنه يمكن للمستخدم تغييره.
وإذا تم تغيير اسم الورقة ، فلن تعمل التعليمات البرمجية الخاصة بك حتى تقوم بتغيير اسم ورقة العمل في كود VBA أيضا.
لمعالجة هذه المشكلة ، يمكنك استخدام الاسم الكودي لورقة العمل (بدلا من الاسم العادي الذي كنا نستخدمه حتى الآن). يمكن تعيين اسم كود في محرر VB ولا يتغير عند تغيير اسم الورقة من منطقة ورقة العمل.
لإعطاء ورقة العمل اسما كوديا، اتبع الخطوات التالية:
انقر فوق علامة التبويب المطور.
انقر فوق الزر Visual Basic. سيؤدي هذا إلى فتح ملف VB Editor.
انقر فوق خيار العرض في القائمة وانقر فوق نافذة المشروع. سيؤدي ذلك إلى جعل جزء الخصائص مرئيا. إذا كان جزء الخصائص مرئيا بالفعل، فتخط هذه الخطوة.
انقر فوق اسم الورقة في مستكشف المشروع الذي تريد إعادة تسميته.
في جزء الخصائص، قم بتغيير الاسم في الحقل الموجود أمام (الاسم). لاحظ أنه لا يمكن أن يكون لديك مسافات في الاسم
ستغير الخطوات المذكورة أعلاه اسم ورقة العمل الخاصة بك في الواجهة الخلفية ل VBA. في عرض ورقة عمل Excel ، يمكنك تسمية ورقة العمل بما تريد ، ولكن في الواجهة الخلفية ، ستستجيب لكلا الاسمين – اسم الورقة والاسم الكودي .
في الصورة أعلاه ، اسم الورقة هو “SheetName” والاسم الكودي هو “CodeName”. حتى إذا قمت بتغيير اسم الورقة في ورقة العمل ، يظل الاسم الكود ي كما هو.
الآن ، يمكنك استخدام إما مجموعة أوراق العمل للإشارة إلى ورقة العمل أو استخدام الاسم الكودي.
على سبيل المثال ، سيقوم كلا الخطين بتنشيط ورقة العمل.
Worksheets(“Sheetname”).Activate
CodeName.Activate
الفرق في هذين هو أنه إذا قمت بتغيير اسم ورقة العمل ، فلن يعمل الأول. لكن السطر الثاني سيستمر في العمل حتى مع تغيير الاسم. السطر الثاني (باستخدام الاسم الكودي) هو أيضا أقصر وأسهل في الاستخدام.
Referring to a Worksheet in a Different Workbook
إذا كنت تريد الرجوع إلى ورقة عمل في مصنف مختلف، فيجب أن يكون هذا المصنف مفتوحا أثناء تشغيل التعليمات البرمجية، كما تحتاج إلى تحديد اسم المصنف وورقة العمل التي تريد الرجوع إليها.
على سبيل المثال ، إذا كان لديك مصنف باسم Examples.xlsx وتريد تنشيط الورقة 1 في المصنف ، فأنت بحاجة إلى استخدام الكود أدناه:
Sub SheetActivate()
Workbooks(“Examples.xlsx”).Worksheets(“Sheet1”).Activate
End Sub
لاحظ أنه إذا تم حفظ المصنف ، فأنت بحاجة إلى استخدام اسم الملف مع الامتداد. إذا لم تكن متأكدا من الاسم الذي تريد استخدامه، فاطلب المساعدة من Project Explorer.
في حالة عدم حفظ المصنف ، لن تحتاج إلى استخدام امتداد الملف.
إضافة ورقة عمل جديدة
Adding a Worksheet
الاسلوب إضافة له أربع وسائط Add (Before, After, Count, Type)
Name | Required/Optional | Data type | Description |
Before | Optional | Variant | يحدد الورقة التي تمت إضافة الورقة الجديدة قبلها. |
After | Optional | Variant | يحدد الورقة التي تتم بعدها إضافة الورقة الجديدة. |
Count | Optional | Variant | عدد الأوراق المراد إضافتها. القيمة الافتراضية هي واحد. |
Type | Optional | Variant | يحدد نوع الورقة. يمكن أن يكون أحد ثوابت XlSheetType التالية: xlWorksheet أو xlChart أو xlExcel4MacroSheet أو xlExcel4IntlMacroSheet. إذا كنت تقوم بإدراج ورقة استنادا إلى قالب موجود، فحدد المسار إلى القالب. القيمة الافتراضية هي xlWorksheet. |
سيضيف الكود أدناه ورقة عمل (كورقة العمل الأولى – أي كورقة في أقصى اليسار في علامة تبويب الورقة).
Sub AddSheet()
Worksheets.Add
End Sub
يأخذ الاسم الافتراضي Sheet2 (أو أي رقم آخر بناء على عدد الأوراق الموجودة بالفعل).
إذا كنت تريد إضافة ورقة عمل قبل ورقة عمل معينة (على سبيل المثال الورقة 2) ، فيمكنك استخدام الكود أدناه.
Sub AddSheet()
Worksheets.Add Before:=Worksheets(“Sheet2”)
End Sub
يخبر الكود أعلاه VBA بإضافة ورقة ثم يستخدم عبارة “قبل” لتحديد ورقة العمل التي يجب إدراج ورقة العمل الجديدة قبلها.
وبالمثل ، يمكنك أيضا إضافة ورقة بعد ورقة عمل (على سبيل المثال الورقة 2) ، باستخدام الكود أدناه:
Sub AddSheet()
Worksheets.Add After:=Worksheets(“Sheet2”)
End Sub
إذا كنت تريد إضافة الورقة الجديدة إلى نهاية الأوراق ، فأنت بحاجة أولا إلى معرفة عدد الأوراق الموجودة. تحسب التعليمة البرمجية التالية أولا عدد الأوراق ، وتضيف الورقة الجديدة بعد الورقة الأخيرة (التي نشير إليها باستخدام رقم الفهرس).
Sub AddSheet()
Dim SheetCount As Integer
SheetCount = Worksheets.Count
Worksheets.Add After:=Worksheets(SheetCount)
End Sub
ستقوم التعليمة البرمجية التالية بإضافة عدد 2 ورقة عمل
Worksheets.Add count:=2
Deleting a Worksheet حذف ورقة عمل
سيؤدي الكود أدناه إلى حذف الورقة النشطة من المصنف.
Sub DeleteSheet()
ActiveSheet.Delete
End Sub
سيعرض الكود أعلاه مطالبة تحذير قبل حذف ورقة العمل.
إذا كنت لا تريد رؤية موجه التحذير ، فاستخدم الكود أدناه:
Sub DeleteSheet()
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
عند تعيين Application.DisplayAlerts إلى False، لن تظهر لك مطالبة التحذير. إذا كنت تستخدمه ، فتذكر تعيينه مرة أخرى إلى True في نهاية الكود.
الاعلان
تذكر أنه لا يمكنك التراجع عن هذا الحذف ، لذا استخدم الكود أعلاه عندما تكون متأكدا تماما.
إذا كنت تريد حذف ورقة معينة ، فيمكنك القيام بذلك باستخدام التعليمة البرمجية التالية:
Sub DeleteSheet()
Worksheets(“Sheet2”).Delete
End Sub
يمكنك أيضا استخدام الاسم الكودي للورقة لحذفها.
Sub DeleteSheet()
Sheet5.Delete
End Sub
Renaming the Worksheetsيمكنك تعديل خاصية اسم ورقة العمل لتغيير اسمها .
ستغير التعليمة البرمجية التالية اسم الورقة 1 إلى “ Summary “.
Sub RenameSheet()
Worksheets(“Sheet1”).Name = “Summary”
End Sub
يمكنك دمج هذا مع طريقة إضافة الورقة للحصول على مجموعة من الأوراق بأسماء محددة.
على سبيل المثال ، إذا كنت تريد إدراج أربع أوراق باسم 2011 a1 و 2011 a2 و 2011 a3 و 2011 a4 ، فيمكنك استخدام الكود أدناه.
Sub RenameSheet()
Dim C As Integer
C = Worksheets.Count
For i = 1 To 4
Worksheets.Add after:=Worksheets(C+ i – 1)
Worksheets(C + i).Name = “2011 Q” & i
Next i
End Sub
في الكود أعلاه ، نحسب أولا عدد الأوراق ثم نستخدم حلقة For Next لإدراج أوراق جديدة في النهاية. عند إضافة الورقة ، يعيد الكود أيضا تسميتها.
Assigning Worksheet Object to a Variable تعيين ورقة العمل إلى متغير
عند استخدام أوراق العمل، يمكنك تعيين ورقة عمل لمتغير كائن، ثم استخدام المتغير بدلا من ورقة العمل كمرجع.
على سبيل المثال ، إذا كنت تريد إضافة سنة إلى جميع أوراق العمل ، إليك الكود الذي سيضيف 2022 كبادئة لجميع أسماء ورقة العمل
Sub RenameSheet()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Name = “2022 – ” & Ws.Name
Next Ws
End Sub
يعلن الكود أعلاه عن متغير Ws كنوع ورقة عمل (باستخدام السطر “Dim Ws As Worksheet”).
والآن، لسنا بحاجة إلى حساب عدد الأوراق للتكرار خلالها. بدلا من ذلك ، يمكننا استخدام حلقة For Each لأوراق العمل”. سيسمح لنا ذلك بمراجعة جميع الأوراق الموجودة في مجموعة أوراق العمل. لا يهم ما إذا كان هناك 2 ورقة أو 20 ورقة.
ينما يسمح لنا الكود أعلاه بالتكرار عبر جميع الأوراق ، يمكنك أيضا تعيين ورقة معينة لمتغير.
في الكود أدناه ، نقوم بتعيين المتغير Ws إلى Sheet2 ونستخدمه للوصول إلى جميع خصائص Sheet2.
Sub RenameSheet()
Dim Ws As Worksheet
Set Ws = Worksheets(“Sheet2”)
Ws.Name = “Summary”
Ws.Protect
End Sub
بمجرد تعيين مرجع ورقة عمل إلى متغير كائن (باستخدام عبارة SET)، يمكن استخدام هذا الكائن بدلا من مرجع ورقة العمل. يمكن أن يكون هذا مفيدا عندما يكون لديك كود طويل معقد وتريد تغيير المرجع. بدلا من إجراء التغيير في كل مكان ، يمكنك ببساطة إجراء التغيير في عبارة SET.
لاحظ أن التعليمة البرمجية تعلن الكائن Ws كمتغير من نوع ورقة العمل (باستخدام السطر Dim Ws كورقة عمل).
Hide Worksheets Using VBA (Hidden + Very Hidden) يعد إخفاء أوراق العمل وإظهارها .
يمكنك إخفاء ورقة عمل ولن يراها المستخدم عندما يفتح المصنف. ومع ذلك ، يمكنهم بسهولة إظهار ورقة العمل بالنقر بزر الماوس الأيمن فوق أي علامة تبويب ورقة.و إختيار unhide
ولكن ماذا لو كنت لا تريدهم أن يكونوا قادرين على إظهار ورقة (أوراق) العمل.
يمكنك القيام بذلك باستخدام VBA.
سيخفي الكود أدناه جميع أوراق العمل في المصنف (باستثناء الورقة النشطة) ، بحيث لا يمكنك إظهارها بالنقر بزر الماوس الأيمن فوق اسم الورقة.
Sub HideAllExcetActiveSheet()
Dim Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> ActiveSheet.Name Then Ws.Visible = xlSheetVeryHidden
Next Ws
End Sub
في التعليمة البرمجية أعلاه، يتم تغيير الخاصية Ws.Visible إلى xlSheetVeryHidden.
- عند تعيين الخاصية مرئي إلى xlSheetVisible، تكون الورقة مرئية في ناحية ورقة العمل (كعلامات تبويب ورقة العمل).
- عند تعيين الخاصية مرئي على xlSheetHidden ، تكون الورقة مخفية ولكن يمكن للمستخدم إظهارها بالنقر بزر الماوس الأيمن فوق أي علامة تبويب ورقة و إختيار unhide.
- عند تعيين الخاصية مرئي إلى xlSheetVeryHidden ، تكون الورقة مخفية ولا يمكن إلغاء إخفائها من ناحية ورقة العمل. تحتاج إلى استخدام كود VBA أو نافذة الخصائص لإظهاره.
- كما يمكن استخدام قيم منطقية true or false بدلا من القيم الثابتة كما يلي
- xlSheetVisible (or TRUE) – the sheet is visible
- xlSheetHidden (or FALSE) – the sheet is hidden
- xlSheetVeryHidden – the sheet is very hidden
- Worksheets(“Sheet1”).visible = False فهذة مساوية للسطر التالي
- Worksheets(“Sheet1”).visible = xlSheetHidden
- Unhide Sheet
- Worksheets(“Sheet1”).Visible = True وهذةايضا مساوية للسطر التالي
- Worksheets(“Sheet1”).Visible = xlSheetVisible
إذا كنت تريد ببساطة إخفاء الأوراق ، فيمكن إخفائها بسهولة ، فاستخدم الكود أدناه:
Sub HideAllExceptActiveSheet()
Dim Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> ActiveSheet.Name Then Ws.Visible = xlSheetHidden
Next Ws
End Sub
سيكشف الكود أدناه عن جميع أوراق العمل (المخفية والمخفية جدا).
Sub UnhideAllWoksheets()
Dim Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets
Ws.Visible = xlSheetVisible
Next Ws
End Sub
Hide Sheets Based on the Text in itاخفاء ورقة عمل بناءا على جزء من اسمها متكرر فى اكثر من ورقة عمل
لنفترض أن لديك أوراق متعددة تحمل اسم أقسام أو سنوات مختلفة وتريد إخفاء جميع الأوراق باستثناء تلك التي تحتوي على عام 2018 فيها.
يمكنك القيام بذلك باستخدام الدالة VBA INSTR.
سيخفي الكود أدناه جميع الأوراق باستثناء تلك التي تحتوي على النص 2011 فيه.
Sub HideWithMatchingText()
Dim Ws As Worksheet
For Each Ws In Worksheets
If InStr(1, Ws.Name, “2011”, vbBinaryCompare) = 0 Then
Ws.Visible = xlSheetHidden
End If
Next Ws
End Sub
في التعليمة البرمجية أعلاه ، ترجع الدالة INSTR موضع الحرف حيث تجد السلسلة المطابقة. إذا لم يعثر على السلسلة المطابقة ، فإنه يرجع 0.
يتحقق الكود أعلاه مما إذا كان الاسم يحتوي على النص 2018 فيه فإن ورقة العمل ستكون مخفية.
يمكنك اتخاذ هذه الخطوة إلى الأمام من خلال وجود النص في خلية واستخدام تلك الخلية في التعليمات البرمجية. سيسمح لك ذلك بالحصول على قيمة في الخلية ، ثم عند تشغيل الماكرو ، ستظل جميع الأوراق ، باستثناء الورقة التي تحتوي على النص المطابق ، مرئية (جنبا إلى جنب مع الأوراق التي تدخل فيها القيمة في الخلية).
Sorting the Worksheets in an Alphabetical Order
باستخدام VBA ، يمكنك فرز أوراق العمل بسرعة بناء على أسمائها.
على سبيل المثال ، إذا كان لديك مصنف يحتوي على أوراق لقسم أو سنوات مختلفة ، فيمكنك استخدام الكود أدناه لفرز هذه الأوراق بسرعة بترتيب تصاعدي.
Sub SortSheetsTabName()
Application.ScreenUpdating = False
Dim ShCount As Integer, i As Integer, j As Integer
ShCount = Sheets.Count
For i = 1 To ShCount – 1
For j = i + 1 To ShCount
If Sheets(j).Name < Sheets(i).Name Then
Sheets(j).Move before:=Sheets(i)
End If
Next j
Next i
Application.ScreenUpdating = True
End Sub
لاحظ أن هذا الكود يعمل بشكل جيد مع الأسماء النصية وفي معظم الحالات مع السنوات والأرقام أيضا. ولكن يمكن أن يعطيك نتائج خاطئة في حال كان لديك أسماء الأوراق مثل 1،2،11. سيتم فرز وإعطائك التسلسل 1 ، 11 ، 2. هذا لأنه يقوم بالمقارنة كنص ويعتبر 2 أكبر من 11.
Creating a Table of Contents of All Worksheets (with Hyperlinks)
إذا كانت لديك مجموعة من أوراق العمل في المصنف وتريد إدراج ورقة ملخص تحتوي على ارتباطات إلى جميع الأوراق بسرعة ، فيمكنك استخدام الكود أدناه.
Sub AddIndexSheet()
Worksheets.Add
ActiveSheet.Name = “Index”
For i = 2 To Worksheets.Count
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i – 1, 1), _
Address:=””, SubAddress:=Worksheets(i).Name & “!A1”, _
TextToDisplay:=Worksheets(i).Name
Next i
End Sub
يدرج الكود أعلاه ورقة عمل جديدة ويسميها فهرس.
ثم يقوم بالتكرار عبر جميع أوراق العمل وإنشاء ارتباط تشعبي لجميع أوراق العمل في ورقة الفهرس.
إليكم بعض الخصائص والطرق الأكثر استخداما اثناء العمل في ورقة عمل Worksheets Excel VBA :
Properties:
- Name Property:إ رجاع اسم ورقة العمل أو تعيينه
لتغيير اسم ورقة عمل، استخدم الخاصية الاسم:
Sub RenameWorksheet()
Worksheets(“Sheet1”).Name = “SalesData”
End Sub
Range Property: إرجاع كائن نطاق يمثل خلية أو نطاق خلايا في ورقة العمل
Sub SelectRange()
Worksheets(“Sheet1”).Range(“A1:D10”).Select
End Sub
- Cells Property: إرجاع كائن نطاق يمثل كافة الخلايا الموجودة في ورقة العمل
Sub SelectAllCells()
Worksheets(“Sheet1”).Cells.Select
End Sub
- UsedRange Property: إرجاع كائن نطاق يمثل النطاق المستخدم في ورقة العمل
في برمجة Excel VBA، خاصية UsedRange لورقة العمل (Worksheet) تشير إلى النطاق المستخدم في ورقة العمل، أي الجزء الذي يحتوي على البيانات أو تم التفاعل معه بشكل مباشر. هذا يشمل الخلايا التي تحتوي على البيانات، التنسيقات، الصيغ، وأي خلايا تم تغيير حجمها أو نمطها.
الغرض: تحديد النطاق الذي يحتوي على بيانات أو تم تغييره في ورقة العمل.
الاستخدام: مفيدة لتحديد حجم البيانات في ورقة عمل، لتنظيف البيانات، أو لتطبيق التنسيقات على كامل نطاق البيانات.
مثال توضيحي:
لنفترض أن لديك بيانات في ورقة العمل من الخلية A1 إلى D10، ولكن لديك أيضًا بعض التنسيقات المطبقة في الخلية G15. في هذه الحالة، سيشمل UsedRange كل الخلايا من A1 إلى G15.
Sub ShowUsedRange()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
‘ الحصول على النطاق المستخدم في ورقة العمل
Dim usedRng As Range
Set usedRng = ws.UsedRange
‘ عرض عنوان النطاق المستخدم في نافذة الرسائل
MsgBox “النطاق المستخدم هو: ” & usedRng.Address
End Sub
في هذا الكود، يتم تحديد ورقة العمل (Sheet1)، ثم استخدام خاصية UsedRange لتحديد النطاق المستخدم فيها، وعرض عنوان النطاق في صندوق رسالة.
ملاحظة مهمة:
خاصية UsedRange قد تشمل أحيانًا خلايا فارغة بسبب التنسيقات أو تغييرات سابقة. لذلك، قد لا تكون دقيقة دائمًا لتحديد الخلايا التي تحتوي فقط على البيانات.
يمكن استخدام هذه الخاصية لتحسين الأداء في الماكروهات عند الحاجة للتعامل مع بيانات ورقة العمل، حيث يتم تجنب التفاعل مع الخلايا الفارغة
- Rows Property: إرجاع كائن نطاق يمثل كافة الصفوف في ورقة العمل
Sub SelectAllRows()
Worksheets(“Sheet1”).Rows.Select
End Sub
Columns Property: إرجاع كائن نطاق يمثل كافة الأعمدة في ورقة العمل:
Sub SelectAllColumns()
Worksheets(“Sheet1”).Columns.Select
End Sub
- الخاصية Parent: ترجع الخاصية Parent لكائن ورقة العمل الكائن الأصل لكائن ورقة العمل. في معظم الحالات، سيكون الكائن الأصل كائن المصنف. على سبيل المثال، إذا كان لديك مصنف يحتوي على أوراق عمل متعددة، فسترجع الخاصية Parent لكل كائن ورقة عمل كائن المصنف الذي يحتوي على ورقة العمل.
فيما يلي مثال حول كيفية استخدام الخاصية Parent للإشارة إلى كائن المصنف الذي يحتوي على ورقة عمل:
Sub Example()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(“Sheet1”)
Debug.Print ws.Parent.Name
End Sub
في هذا المثال، تقوم التعليمة البرمجية بتعيين كائن ورقة العمل ل “Sheet1” إلى متغير يسمى ws. ثم تقوم عبارة Debug.Print بطباعة اسم الكائن الأصل لكائن ورقة العمل (وهو اسم المصنف).
- خاصية ScrollArea: يتم استخدام خاصية ScrollArea لكائن ورقة عمل لتعيين المنطقة القابلة للتمرير في ورقة العمل أو الحصول عليها. عند تعيين خاصية ScrollArea لورقة عمل، فإنه يحد من مساحة ورقة العمل التي يمكن تمريرها. يمكن أن يكون هذا مفيدا إذا كنت تريد تقييد المستخدمين من التمرير خارج نطاق معين من الخلايا.
اذا هي خاصية في Excel تحدد نطاق الخلايا التي يمكن رؤيتها على الشاشة عند فتح ورقة العمل جميع الخلايا في ورقة العمل مرئية.
يمكنك استخدام خاصية **ScrollArea** لتحديد نطاق أصغر من الخلايا ليتم عرضه على الشاشة. على سبيل المثال، إذا كنت تريد عرض الخلايا من A1 إلى D25 فقط، يمكنك تعيين خاصية **ScrollArea** إلى **”A1:D25″**.
لتغيير خاصية ScrollArea لورقة عمل باستخدام VBA. للقيام بذلك، يمكنك استخدام الدالة **Range.ScrollArea**.**
**مثال:**
Sub SetScrollArea()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
ws.ScrollArea = “A1:D25”
End Sub
سيؤدي هذا الكود إلى تعيين خاصية **ScrollArea** لورقة العمل “Sheet1” إلى **”A1:D25“**.
لكن ماذا عن الغائها
Sub ClearScrollArea()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
ws.ScrollArea = “”
End Sub
سيؤدي هذا الكود إلى تعيين خاصية ScrollArea لورقة العمل “Sheet1” إلى “”، مما يعني أن جميع الخلايا في ورقة العمل مرئية.
- خاصية type: ترجع خاصية النوع لكائن ورقة العمل نوع ورقة العمل. توجد ثلاث قيم محتملة للخاصية Type: xlWorksheet (1) وxlChart (2) وxlDialogSheet (3).
فيما يلي مثال على كيفية استخدام خاصية Type للتحقق من نوع ورقة العمل:
Sub Example()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(“Sheet1”)
If ws.Type = xlWorksheet Then
Debug.Print “This is a worksheet.”
ElseIf ws.Type = xlChart Then
Debug.Print “This is a chart.”
ElseIf ws.Type = xlDialogSheet Then
Debug.Print “This is a dialog sheet.”
End If
End Sub
في هذا المثال، تقوم التعليمة البرمجية بتعيين كائن ورقة العمل ل “Sheet1” إلى متغير يسمى ws. ثم تتحقق عبارة If من قيمة الخاصية Type لتحديد نوع ورقة العمل. إذا كانت الخاصية Type تساوي xlWorksheet ، فإنها تطبع رسالة تشير إلى أنها ورقة عمل. إذا كانت الخاصية Type تساوي xlChart، فستتم طباعة رسالة تشير إلى أنها مخطط. إذا كانت الخاصية Type تساوي xlDialogSheet ، فإنها تطبع رسالة تشير إلى أنها ورقة حوار.
.ProtectContents Property: إرجاع قيمة تشير إلى ما إذا كانت محتويات ورقة العمل محمية أم لا :
في برمجة Excel VBA، خاصية .ProtectContents لكائن Worksheet (ورقة العمل) هي خاصية للقراءة فقط تعود بالقيمة True إذا كانت ورقة العمل محمية ضد التعديل.
عندما تحمي ورقة عمل في Excel، فإنك تمنع تغييرات معينة من قِبل المستخدمين، مثل تعديل الخلايا، إضافة أو حذف الصفوف/الأعمدة، تحريك الخلايا، الخ. تُستخدم هذه الوظيفة للحفاظ على سلامة البيانات والصيغ المهمة من التغييرات غير المقصودة أو الضارة.
استخدام خاصية .ProtectContents: التحقق من حالة الحماية: يمكنك استخدام .ProtectContents للتحقق مما إذا كانت ورقة العمل محمية في الوقت الحالي.
Sub CheckIfWorksheetIsProtected()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
If ws.ProtectContents Then
MsgBox “ورقة العمل محمية.”
Else
MsgBox “ورقة العمل غير محمية.”
End If
End Sub
في هذا المثال، يتم فحص ورقة العمل Sheet1 لمعرفة ما إذا كانت محمية. يعرض الكود رسالة توضح حالة الحماية.
ملاحظة هامة:
للقراءة فقط: .ProtectContents هي خاصية للقراءة فقط ولا يمكن استخدامها لتغيير حالة الحماية لورقة العمل. لحماية ورقة العمل أو إلغاء حمايتها، يجب استخدام الأساليب .Protect أو .Unprotect على التوالي.
ProtectionMode
في برمجة Excel VBA، خاصية ProtectionMode لكائن Worksheet (ورقة العمل) هي خاصية للقراءة فقط تُستخدم لتحديد ما إذا كانت الحماية قيد التفعيل في ورقة العمل.
خاصية ProtectionMode تعود بالقيمة True إذا كانت ورقة العمل في وضع الحماية، وهذا يعني أن الإعدادات المحددة في وقت تفعيل الحماية (Worksheet.Protect method) ما زالت سارية. إذا لم تكن ورقة العمل محمية، أو إذا تم إلغاء حمايتها بعد حمايتها، فإن ProtectionMode ستكون False.
مثال على كود VBA يستخدم ProtectionMode:
Sub CheckProtectionMode()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
If ws.ProtectionMode Then
MsgBox “ورقة العمل في وضع الحماية.”
Else
MsgBox “ورقة العمل ليست في وضع الحماية.”
End If
End Sub
في هذا المثال، يتم فحص ورقة العمل Sheet1 لمعرفة ما إذا كانت في وضع الحماية. يعرض الكود رسالة توضح حالة وضع الحماية.
الفرق بين ProtectContents و ProtectionMode:
ProtectContents تعود بـ True إذا كانت ورقة العمل محمية بشكل عام (أي إذا تم تطبيق الحماية عليها).
ProtectionMode تعود بـ True إذا كانت الإعدادات المحددة أثناء تفعيل الحماية لا تزال سارية ونشطة.
ملاحظة هامة:
يجب التمييز بين الحالتين: حماية ورقة العمل (Protect) وتفعيل وضع الحماية (ProtectionMode). يمكن لورقة العمل أن تكون محمية دون أن تكون في وضع الحماية النشط إذا تم تغيير بعض إعدادات الحماية بعد تطبيقها.
ProtectScenarios
في Excel VBA ، خاصية ProtectScenarios لكائن Worksheet (ورقة العمل) تُستخدم لتحديد ما إذا كانت السيناريوهات محمية عند تفعيل الحماية على ورقة العمل. هذه الخاصية مفيدة بشكل خاص في حالة استخدام ورقة العمل لتحليلات مختلفة تعتمد على سيناريوهات متعددة.
الغرض: ProtectScenarios تحمي السيناريوهات الموجودة في ورقة العمل من التغييرات غير المصرح بها.
النوع: خاصية للقراءة فقط تعود بقيمة بوليانية (True أو False).
استخدامها: عندما تحمي ورقة العمل باستخدام الطريقة Worksheet.Protect، يمكنك تحديد ما إذا كنت ترغب أيضًا في حماية السيناريوهات.
Sub ProtectWorksheetAndScenarios()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
‘ حماية ورقة العمل والسيناريوهات
ws.Protect ProtectScenarios:=True
End Sub
في هذا المثال، يتم حماية ورقة العمل Sheet1 وتشمل الحماية أيضًا السيناريوهات الموجودة في الورقة.
إذا كانت الورقة محمية وProtectScenarios تعود بـ True، فهذا يعني أن السيناريوهات في الورقة محمية.
يمكنك فحص هذه الخاصية لتحديد ما إذا كانت السيناريوهات في ورقة معينة محمية أم لا.
تحمية السيناريوهات مهمة للحفاظ على سلامة البيانات والتحليلات التي تم إجراؤها باستخدام هذه السيناريوهات، خاصةً في بيئات العمل التي تتشارك فيها الملفات بين عدة مستخدمين.
- CodeName Property: إرجاع الاسم الكودي لورقة العمل
Sub GetCodeName()
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Sheets(“Sheet2”)
MsgBox ws.CodeName
End Sub
سيؤدي هذا الكود إلى طباعة الاسم الكودي لورقة العمل “Sheet2” في مربع رسالة
Methods:
Activate Method: تنشيط ورقة العمل
Sub ActivateWorksheet()
Worksheets(“Sheet1”).Activate
End Sub
Select Method:
Sub SelectWorksheet()
Worksheets(“Sheet1”).Select
End Sub
. Copy Method: نسخ ورقة العمل إلى مصنف جديد أو إلى موقع محدد في المصنف الحالي
في برمجة Excel VBA، طريقة Copy لكائن Worksheet (ورقة العمل) تُستخدم لنسخ ورقة عمل إلى موقع جديد في نفس المصنف أو مصنف آخر. يمكنك استخدام هذه الطريقة بعدة طرق مختلفة، حسب الوسائط التي تقدمها.
وسائط الدالة Copy:
Before: ورقة العمل أو الكائن الذي تريد نسخ ورقة العمل قبله.
After: ورقة العمل أو الكائن الذي تريد نسخ ورقة العمل بعده.
ملاحظة
يمكن استخدام وسيطة Before أو After، ولكن ليس كلاهما في نفس الوقت.
إذا لم تستخدم أي من الوسائط، فإن Excel ينشئ نسخة جديدة من ورقة العمل في مصنف جديد. يحتوي المصنف الذي تم إنشاؤه حديثًا على خاصية Application.ActiveWorkbook ويحتوي على ورقة عمل واحدة. تحتفظ ورقة العمل الفردية بخصائص الاسم والاسم الكودي لورقة العمل المصدر. إذا كانت ورقة العمل المنسوخة تحتوي على ورقة تعليمات برمجية لورقة العمل في مشروع VBA، فسيتم نقلها أيضًا إلى المصنف الجديد
أمثلة على استخدام طريقة Copy:
نسخ ورقة عمل إلى نهاية المصنف:
Sub CopyWorksheetToEnd()
ThisWorkbook.Sheets(“Sheet1”).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
End Sub
نسخ ورقة عمل إلى بداية المصنف:
Sub CopyWorksheetToBeginning()
ThisWorkbook.Sheets(“Sheet1”).Copy Before:=ThisWorkbook.Sheets(1)
End Sub
نسخ ورقة عمل إلى مصنف جديد:
Sub CopyWorksheetToNewWorkbook()
ThisWorkbook.Sheets(“Sheet1”).Copy
‘ يتم إنشاء مصنف جديد ويحتوي على النسخة
End Sub
نسخ ورقة عمل إلى مصنف معين:
Sub CopyWorksheetToSpecificWorkbook()
Dim wb As Workbook
Set wb = Workbooks(“TargetWorkbook.xlsx”)
ThisWorkbook.Sheets(“Sheet1”).Copy After:=wb.Sheets(wb.Sheets.Count)
End Sub
استخدام طريقة Copy يتيح لك نسخ ورقة عمل بمرونة كبيرة.
يمكنك التحكم في مكان وضع النسخة الجديدة من ورقة العمل بواسطة الوسائط Before و After.
إذا لم تستخدم أي من هذه الوسائط، سينشئ Excel نسخة جديدة من ورقة العمل في مصنف جديد.
الدالة Move في برمجة Excel VBA لكائن Worksheet (ورقة العمل) تُستخدم لنقل ورقة عمل إلى موقع جديد داخل نفس المصنف أو إلى مصنف جديد. مشابهة لطريقة Copy, يمكنك استخدام طريقة Move بوسائط مختلفة لتحديد مكان وضع ورقة العمل المنقولة.
وسائط طريقة Move:
Before: ورقة العمل أو الكائن الذي تريد نقل ورقة العمل قبله.
After: ورقة العمل أو الكائن الذي تريد نقل ورقة العمل بعده.
ملاحظة:
يمكن استخدام وسيطة Before أو After، ولكن ليس كلاهما في نفس الوقت.
إذا لم تستخدم أي من الوسائط، سيتم نقل ورقة العمل إلى مصنف جديد.
نقل ورقة عمل إلى نهاية المصنف:
Sub MoveWorksheetToEnd()
ThisWorkbook.Sheets(“Sheet1”).Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
End Sub
نقل ورقة عمل إلى بداية المصنف:
Sub MoveWorksheetToBeginning()
ThisWorkbook.Sheets(“Sheet1”).Move Before:=ThisWorkbook.Sheets(1)
End Sub
نقل ورقة عمل إلى مصنف جديد:
Sub MoveWorksheetToNewWorkbook()
ThisWorkbook.Sheets(“Sheet1”).Move
‘ يتم إنشاء مصنف جديد ويحتوي على الورقة المنقولة
End Sub
نقل ورقة عمل إلى مصنف معين:
Sub MoveWorksheetToSpecificWorkbook()
Dim wb As Workbook
Set wb = Workbooks(“TargetWorkbook.xlsx”)
ThisWorkbook.Sheets(“Sheet1”).Move After:=wb.Sheets(wb.Sheets.Count)
End Sub
الخلاصة:
استخدام طريقة Move يمكّنك من نقل ورقة عمل بمرونة كبيرة داخل المصنف الحالي أو إلى مصنف آخر.
يمكن التحكم في مكان وضع الورقة المنقولة باستخدام الوسائط Before و After.
إذا لم تستخدم أي وسائط، فسيتم نقل ورقة العمل إلى مصنف جديد.
Protect Method: يحمي ورقة العمل بكلمة مرور
طريقة Protect في برمجة Excel VBA لكائن Worksheet (ورقة العمل) تُستخدم لحماية ورقة العمل من التغييرات غير المصرح بها. يمكنك استخدام هذه الطريقة بعدة طرق مختلفة، وهي تقبل العديد من الوسائط التي تسمح لك بتحديد مستوى ونوع الحماية.
وسائط طريقة Protect:
Password: كلمة مرور تُستخدم لحماية ورقة العمل.
DrawingObjects: القيمة True تحمي الأشياء مثل الأشكال والصور.
Contents: القيمة True تحمي محتويات الخلايا نفسها.
Scenarios: القيمة True تحمي السيناريوهات.
UserInterfaceOnly: القيمة True تحمي الورقة من التغييرات عبر واجهة المستخدم فقط، ولا تحميها عند التعديل عبر VBA.
AllowFormattingCells: القيمة True تسمح بتنسيق الخلايا حتى عندما تكون الورقة محمية.
AllowFormattingColumns: القيمة True تسمح بتنسيق الأعمدة.
AllowFormattingRows: القيمة True تسمح بتنسيق الصفوف.
AllowInsertingColumns: القيمة True تسمح بإضافة أعمدة.
AllowInsertingRows: القيمة True تسمح بإضافة صفوف.
AllowInsertingHyperlinks: القيمة True تسمح بإضافة روابط تشعبية.
AllowDeletingColumns: القيمة True تسمح بحذف الأعمدة.
AllowDeletingRows: القيمة True تسمح بحذف الصفوف.
AllowSorting: القيمة True تسمح بالترتيب.
AllowFiltering: القيمة True تسمح بالتصفية.
AllowUsingPivotTables: القيمة True تسمح باستخدام جداول البيانات المحورية.
مثال على استخدام طريقة Protect:
Sub ProtectWorksheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
ws.Protect Password:=”MyPassword”, AllowFormattingCells:=True, AllowSorting:=True
End Sub
في هذا المثال، يتم حماية ورقة العمل Sheet1 بكلمة مرور “MyPassword”. ويسمح للمستخدمين بتنسيق الخلايا والترتيب حتى عندما تكون الورقة محمية.
الخلاصة:
طريقة Protect توفر طريقة مرنة لحماية ورقة العمل من التغييرات غير المرغوب فيها، مع إمكانية السماح ببعض الإجراءات المحددة.
يمكنك تخصيص مستوى الحماية بدقة باستخدام الوسائط المختلفة.
تذكر أن كلمة المرور لحماية ورقة العمل يجب أن تكون قوية لضمان عدم تجاوز الحماية بسهولة.
إزالة الحماية من ورقة العملUnprotect Method
Unprotect في برمجة Excel VBA لكائن Worksheet (ورقة العمل) تُستخدم لإزالة حماية ورقة العمل. إذا كانت ورقة العمل محمية بكلمة مرور، فيمكنك توفير كلمة المرور كوسيطة لإلغاء الحماية.
وسائط طريقة Unprotect:
Password: كلمة المرور التي استُخدمت لحماية ورقة العمل.
مثال على استخدام طريقة Unprotect:
إلغاء حماية ورقة العمل بدون كلمة مرور:
Sub UnprotectWorksheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
ws.Unprotect
End Sub
إلغاء حماية ورقة العمل باستخدام كلمة مرور:
Sub UnprotectWorksheetWithPassword()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
ws.Unprotect Password:=”MyPassword”
End Sub
الخلاصة:
طريقة Unprotect تُستخدم لإزالة الحماية من ورقة العمل.
إذا كانت ورقة العمل محمية بكلمة مرور، فستحتاج إلى توفير هذه الكلمة المرور عند استدعاء الطريقة.
إذا لم تكن ورقة العمل محمية بكلمة مرور، يمكنك استدعاء Unprotect بدون وسائط.
يجب أن تكون حذرًا عند استخدام هذه الطريقة للتأكد من أنك لا تزيل الحماية عن البيانات الحساسة بطريق الخطأ.
- Calculate:إعادة حساب كافة الصيغ الموجودة في ورقة العمل
Calculate في برمجة Excel VBA لكائن Worksheet (ورقة العمل) تُستخدم لإجبار الورقة الحالية على إعادة حساب كافة الصيغ والدوال فيها. هذه الطريقة مفيدة بشكل خاص عندما تكون في وضع الحساب اليدوي وتريد تحديث النتائج في ورقة عمل معينة فقط، بدلاً من إعادة حساب كل الصيغ في جميع أوراق العمل المفتوحة.
استخدام طريقة Calculate:
طريقة Calculate لا تحتاج إلى أي وسائط. عند استدعائها، تقوم بإعادة حساب كل الصيغ الموجودة في الورقة المحددة.
مثال على استخدام طريقة Calculate:
Sub RecalculateWorksheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
ws.Calculate
End Sub
في هذا المثال، يتم إعادة حساب جميع الصيغ في ورقة العمل “Sheet1”.
الخلاصة:
استخدام Calculate يُعتبر مهمًا عند العمل في وضع الحساب اليدوي (Application.Calculation = xlManual)، حيث يمكنك التحكم في وقت إعادة حساب الصيغ لورقة معينة.
هذه الطريقة تفيد في تحسين الأداء عند التعامل مع مصنفات كبيرة ومعقدة، حيث يمكنك تجنب الحساب الكامل للمصنف بأكمله.
Calculate يؤدي إلى تحديث النتائج فقط في الورقة المحددة، دون تأثير على بقية أوراق العمل في المصنف.
طباعة ورقة العملPrintOut Method :
PrintOut في برمجة Excel VBA لكائن Worksheet (ورقة العمل) تُستخدم لطباعة الورقة أو نطاق محدد منها. يمكنك التحكم في مختلف جوانب الطباعة، مثل عدد النسخ، الصفحات المطبوعة، وغيرها، من خلال وسائط هذه الطريقة.
وسائط PrintOut:
From: رقم الصفحة الأولى للطباعة. إذا تُركت فارغة، يبدأ الطباعة من الصفحة الأولى.
To: رقم الصفحة الأخيرة للطباعة. إذا تُركت فارغة، يتم الطباعة حتى الصفحة الأخيرة.
Copies: عدد النسخ المطبوعة.
Preview: القيمة True تعرض معاينة قبل الطباعة.
ActivePrinter: يحدد اسم الطابعة المستخدمة.
PrintToFile: إذا تم تعيينه إلى True، يتم طباعة المستند في ملف.
Collate: القيمة True تعني ترتيب النسخ (عند طباعة أكثر من نسخة).
PrToFileName: إذا تم تعيين PrintToFile إلى True، يمكن استخدام هذه الوسيطة لتحديد اسم الملف.
مثال على استخدام طريقة PrintOut:
طباعة ورقة العمل كاملة:
Sub PrintWorksheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
ws.PrintOut
End Sub
طباعة صفحات محددة من ورقة العمل:
Sub PrintSpecificPages()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
ws.PrintOut From:=1, To:=3, Copies:=2, Preview:=True
End Sub
في هذا المثال، يتم طباعة الصفحات من 1 إلى 3 من ورقة العمل “Sheet1”، بعدد نسختين لكل صفحة، ويتم عرض معاينة قبل الطباعة.
الخلاصة:
طريقة PrintOut توفر طريقة مرنة لطباعة ورقة العمل أو جزء محدد منها.
يمكنك التحكم في العديد من جوانب الطباعة مثل عدد الصفحات، النسخ، ووضع المعاينة.
يمكن أيضًا تحديد الطابعة وحتى توجيه الطباعة إلى ملف بدلاً من طابعة ورقية.
في برمجة Excel VBA، لا توجد طريقة SaveAs مباشرة لكائن Worksheet (ورقة العمل). ومع ذلك، يمكن حفظ ورقة عمل مفردة كمصنف جديد باستخدام تقنية غير مباشرة تتضمن نسخ ورقة العمل إلى مصنف جديد ومن ثم استخدام طريقة SaveAs لحفظ هذا المصنف الجديد.
خطوات حفظ ورقة العمل كمصنف جديد:
نسخ ورقة العمل: أولاً، يتم نسخ ورقة العمل المراد حفظها إلى مصنف جديد. هذا يتم عادةً باستخدام طريقة Copy.
حفظ المصنف الجديد: بعد نسخ ورقة العمل، يصبح المصنف الجديد هو المصنف النشط (ActiveWorkbook). يمكن بعد ذلك استخدام طريقة SaveAs لحفظ المصنف الجديد بإسم وصيغة محددة.
مثال على حفظ ورقة العمل كمصنف جديد:
Sub SaveWorksheetAsNewWorkbook()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
‘ نسخ ورقة العمل إلى مصنف جديد
ws.Copy
‘ حفظ المصنف الجديد بإسم جديد
ActiveWorkbook.SaveAs Filename:=”C:\MyDocuments\NewWorkbook.xlsx”, FileFormat:=xlOpenXMLWorkbook
‘ إغلاق المصنف الجديد بعد الحفظ
ActiveWorkbook.Close
End Sub
في هذا المثال، يتم نسخ “Sheet1” إلى مصنف جديد ومن ثم يتم حفظه تحت اسم “NewWorkbook.xlsx”.
الخلاصة:
في حين أن ورقة العمل ليس لديها طريقة SaveAs مباشرة، يمكن العمل حول هذا القيد بنسخ ورقة العمل إلى مصنف جديد ومن ثم استخدام SaveAs على المصنف الجديد.
هذه الطريقة تحفظ فقط الورقة المحددة كمصنف منفصل، وليس المصنف بأكمله
خطوات لحفظ ورقة عمل كملف PDF:
تحديد ورقة العمل: اختر الورقة التي تريد تحويلها إلى PDF.
استخدام ExportAsFixedFormat: استدعاء الطريقة ExportAsFixedFormat على الورقة المحددة مع تحديد الصيغة كـ xlTypePDF.
مثال على الكود:
Sub SaveWorksheetAsPDF()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”) ‘ تحديد ورقة العمل
‘ حفظ ورقة العمل كملف PDF
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=”C:\path\to\your\file.pdf”, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub
في هذا المثال، يتم حفظ “Sheet1” كملف PDF في المسار المحدد.
الخصائص والوسائط:
Type: يجب أن يكون xlTypePDF لتحويلها إلى PDF.
Filename: المسار واسم الملف الذي تريد حفظ الملف به.
Quality: يمكن تحديدها كـ xlQualityStandard أو xlQualityMinimum.
IncludeDocProperties: تحديد True لتضمين خصائص المستند.
IgnorePrintAreas: False لاحترام مناطق الطباعة المحددة في الورقة.
OpenAfterPublish: True لفتح الملف تلقائياً بعد الإنشاء.
الخلاصة:
استخدام ExportAsFixedFormat هو طريقة فعالة لتحويل ورقة عمل في Excel إلى ملف PDF، مع توفر خيارات متعددة لتخصيص العملية.
What’s up i am kavin, its my first occasion to commenting anyplace, when i read this post
i thought i could also create comment due to this good piece of writing.