السلام عليكم ورحمة الله وبركاته
إخواني وأحبابي في الله
أقدم لكم اليوم كود في منتهى الأهمية لمن يقومون بتصدير أوراق العمل إلى PDF ، حيث أن الكود سيكون عبارة عن إجراء عام من خلاله يمكن تحديد أوراق العمل المطلوب تصديرها أياً كان عددها ، ويمكنك تحديد المسار للملف الذي سيتم تصديره
الإجراء العام سيكون بهذا الشكل
CODE
Sub PrintToPDF(arr As Variant, fileName As String, _<br />
Optional vQuality = xlQualityStandard, _<br />
Optional vIncDocProperties = True, _<br />
Optional vIgnorePrintAreas = False, _<br />
Optional vOpenAferPublish = False)<br />
<br />
ThisWorkbook.Sheets(arr).Select<br />
ActiveSheet.ExportAsFixedFormat _<br />
Type:=xlTypePDF, _<br />
fileName:=fileName, _<br />
Quality:=vQuality, _<br />
IncludeDocProperties:=vIncDocProperties, _<br />
IgnorePrintAreas:=vIgnorePrintAreas, _<br />
OpenAfterPublish:=vOpenAferPublish<br />
ActiveSheet.Select<br />
End Sub<br />
<br />
والميزة الهامة في الإجراءات العامة أنه يمكن استخدامها بمرونة ويمكنها استخدامها أكثر من مرة ، حيث أنها تسهل عملية التنفيذ ..
الإجراء العامة يشبه الدوال المعرفة حيث أنه توجد بارامترات خاصة بالإجراء الفرعي ، وأهم هذه البارامترات هو الأول والثاني
البارامتر الأول سيكون عبارة عن مصفوفة بأسماء أوراق العمل المطلوب تصديرها
CODE
Array("Sheet1", "Sheet2")
و
البارامتر الثاني سيكون عبارة عن المسار الذي سيحفظ فيه ملف الـ PDF
CODE
ThisWorkbook.Path & "Output.pdf"
وهذا السطر يعني أن المسار هو مسار المصنف الحالي (نفس مسار الملف) ، علاوة على الاسم الذي ترغبه في ملف الـ PDF الذي سيتم تصديره
ويمكن استخدام الإجراء العام بهذا الشكل في النهاية
CODE
Sub Test_PrintToPDF()
PrintToPDF Array("Sheet1", "Sheet2"), ThisWorkbook.Path & "Output.pdf"
End Sub
* يمكن تصدير ورقة عمل واحدة (لا مشكلة على الإطلاق) حيث سيكتب البارامتر الخاص بأوراق العمل بهذا الشكل
CODE
Array("Sheet1")
وأخيراً إليكم ملف التطبيق (تحميل الملف من الموقع يدعم صاحب الموضوع ، فلا تبخل علينا كما أننا لا نبخل عليك)
تحميل الملف المرفق من هنا
كان معكم أخوكم في الله / ياسر خليل أبو البراء