علامة مائية
كثيرا منا من يبحث عن إضافة علامة مائية خاصة به أو بالشركة التى يعمل بها أثناء
طباعة الأوراق أو الفواتير أو أيا كان .
طبعا من المعلوم لدى الجميع أن الاكسل لا يمكن عمل علامة مائية أثناء الطباعة من
خلال القوائم أو المعادلات .
فما الحل ؟
الحل :
يمكننا استخدام كود فيجوال بيسك اكسل
لكى يقوم بهذه المهمه المطلوبة
المتطلبات
وضع ملف العمل ، والصورة التى ستكون كعلامة مائية داخل مجلد واحد .
اضافة الكود الذى سنتحدث عنه داخل موديول ثم ربطه بزر داخل الملف .
نقاط أساسية بالكود البرمجى يجب التنويه عنها لكى نتعلم كيفية استخدامه
والتعديل عليه حسب النموذج الذى تستخدمه
السطر البرمجى التالي هو أول سطر بالكود
Private Const Nm As String = "learnvbamsexcel.jpg"
نجد بالسطر البرمجى أعلاه جملة learnvbamsexcel مع امتداد jpg
وهذا يعنى أننا نضع اسم الصورة
على أن تكون الصورة بإمتداد jpg
السطر البرمجى التالى بالكود
arr = Array(1, 2, 3)
نجد أن بالسطر البرمجى أعلاه أرقام وهى اسم الشيت المراد وضع علامة مائية به أثناء الطباعة
وهذه الأرقام تم وضعها بناء على النموذج الذى تم تنفيذ العمل عليه
يمكنك بالطبع تغيير الأرقام ووضع اسماء الشيتات التى تريد وضع علامه مائية بها أثناء طباعتها
حسب النموذج الذى تعمل عليه
السطر البرمجى التالى بالكود
.HeaderMargin = Application.InchesToPoints(3.8)
الرقم الموجود بالسطر البرمجى أعلاه ( 3.8 ) يمكنك التعديل عليه حسب ما يتوافق معك
بمعنى أن هذا الرقم يتحكم فى المسافة التى هى أعلى الصورة التى ستظهر كعلامة مائية
فى الورقة التى ستقوم بطباعتها
السطر البرمجى التالى بالكود
Sheets("المدونة").Activate
السطر البرمجى أعلاه يشير إلى أن بعد انتهاء الكود من تنفيذ المطلوب يقوم مباشرة بالذهاب الى
شيت يسمى ( المدونة ) لإظهاره حسب النموذج الذى تم العمل عليه
يمكنك تغييره كما تشاء
وأخيرا وليس آخرا
إليكم الكود البرمجى كاملا
Private Const Nm As String = "learnvbamsexcel.jpg"
Public Sub Watermark()
Dim Pth As String
Dim arr(), sh
arr = Array(1, 2, 3)
For sh = LBound(arr) To UBound(arr)
Pth = ThisWorkbook.Path & Application.PathSeparator & "\" & Nm
Sheets(arr(sh)).PageSetup.CenterHeaderPicture.Filename = Pth
With Sheets(arr(sh)).PageSetup
.CenterHeader = "&G"
If .Orientation = xlPortrait Then
.HeaderMargin = Application.InchesToPoints(3.8)
ElseIf .Orientation = xlLandscape Then
.HeaderMargin = Application.InchesToPoints(5.5)
End If
ActiveWindow.SelectedSheets.PrintPreview
End With
Next
MsgBox "Done.(-learnvbamsexcel مع تحيات -)."
Sheets("المدونة").Activate
End Sub
تعليقات: 0
إرسال تعليق